Tag: 性能

我应该在客户端增强Jquery Mobile元素还是使用data-enhance =“false”发送增强型标记?

我有一个产品搜索,我发回结果,每个结果包含一个两个按钮JQM控制组。 我一次发送24条记录,所以这将是24个控制组来增强,如下所示: 如果我将控制组作为纯HTML发送并在客户端上增强它们,则服务器响应为1sec ,数据发送20k ,并且页面显着停止大约1-2秒,这可能是因为JQM忙于增强控制组。 我现在正在尝试替代方案 $.mobile.ignoreContentEnabled = true; 并发送完全增强的标记而不是控制组。 所以现在我发送这个: #tx# #tx#   它将传输大小增加到34k ,响应时间增加到1.5sec ,但页面感觉更快,因为没有什么可以增强的。 但是我也读到使用data-enhance=false ,这对设备来说是性能上的打击。 题: 有没有其他人有如何处理这个的经验? 如果页面感觉更快,我应该选择大文件大小/传输时间/性能吗?

jQuery是否在内部缓存元素?

我知道jQuery不会缓存元素集合,f.ex调用: $(‘.myclass’).html(‘hello’); $(‘.myclass’).html(‘bye’); 将使jQuery两次爬上DOM。 但缓存的DOM节点怎么样? var elems = document.querySelectorAll(‘.myclass’); $(elems).html(‘hello’); $(elems).html(‘bye’); jQuery会在内部缓存这些内容,还是会像第一个例子一样缓慢? 澄清一下:jQuery是否会在内部保留对elems的引用并缓存$(elems)以便每次都不必应用相同的$()包装器? 就像是: cache = {} constructor = function(collection) if collection in cache return cache[collection] else construct(collection)

.prop()VS .val()。使用jQuery设置输入文本值

阅读(有趣的) .prop()vs .attr()和jQuery Performance:属性怀疑在我的脑海中出现了什么更好用:.prop()或.val()? 我想设置一个输入文本值。 jQuery .prop()页面说了以下内容: 属性通常会影响DOM元素的动态状态,而不会更改序列化的HTML属性。 示例包括输入元素的value属性,输入和按钮的disabled属性或复选框的checked属性。 应该使用.prop()方法来设置disabled和checked而不是.attr()方法。 应该使用.val()方法来获取和设置值 。 但是关于性能.prop()似乎比.val()设置值更好: 所以我没有答案。 我该做什么? $(‘#element’).prop(‘value’, ‘Example’); 要么 $(‘#element’).val(‘Example’); EDIT1: .prop()总是优于.val() 编辑2:我现在尝试获取一个值 ,也.prop()更快 EDIT3:正如@BeatAlex所说,如果我们想要性能本机js 非常快 var x = document.getElementById(‘element’).value; 正如你们中的一些人说它可能会更快,但如果存在.val(),我们就会使用它。 PS:当我写这篇文章时,当前的jQuery版本是1.11或2.1

衡量Javascript性能

我正在尝试对我们的前端进行全面分析,我想知道是否有任何工具可以自动测量Javascript。 例如: 执行函数(无需我在记录之前/之后手动输入日期对象) 我页面上的哪个脚本最慢,为什么 找出我需要优化的function 我可以做任何jQuery改进(除了通过John Resig的jquery-profile.js ) 我可以使用更好的选择器 对某些对象进行记忆 使用更好的function(例如:使用find因为它更快) 我正在为我的JS寻找一个分析器(以及一些同样适用于jQuery的东西),除了像Firebug,Chrome开发工具,Yslow / Page速度插件等等。我正在寻找比JSlint更好的东西或者jsPerf。 我在我的应用程序上运行New Relic,但它没有告诉我我的脚本缺少的位置。 我希望有一种更简单的方式来分析我的JS而不是手动操作。 我需要一个完整分析的解决方案,并给我一个包含指标的报告。

jQuery使用事件处理程序删除元素

我有一个产品列表,我需要动态更新#container的innerHTML。 我的问题是,如果我在这个答案中做了类似的事情: Jquery删除元素内的所有事件处理程序 $(“#container”).find(“*”).off(); 所以,我删除了所有孩子的所有事件处理程序,然后我更新了html: $(“#container”).html(responseFromAJAX); 这将如何影响性能? 我的意思是,这是一个好方法,删除所有旧元素和处理程序,清理内存,或者我需要做更多? 我的应用程序是一个网上商店,所以我的用户将环顾四周,并更新#container可能30-50次/访问。

jquery / javascript如何更快地计算宽度

我有一个100列的表。 我正在运行所有th元素的循环,以明确设置每个元素的宽度。 var $ths = $(“table th”); $ths.each(function (i, th) { var $th = $(th); var width = $th.width(); $th.width(width); }); 对于100列,这需要花费太多时间(超过60秒)。 每个“获取宽度”调用需要500-700毫秒。 这是因为每次都需要生成布局,我得到宽度。 问题 – 有更快的方法来获得宽度吗? 原因 – 我冻结了标题。 为此,我需要将每个标题的宽度设置为固定的像素宽度。 一切都是动态的,并且预先设置px中每列的宽度不是一个选项。

jquery bind click和 tag onclick之间的性能

我正在开发一个Web应用程序并使用相当多的JavaScript执行任务。 我有一些与Jquery绑定的标签点击做一些工作,所以我有这样的代码: HTML代码: some content here some content here …. Jquery代码: $(‘#id1’).click(function(){ //do something here.. return false; }); $(‘#id2’).click(function(){ //do something else here.. return false; }); 使用这种方法,当脚本运行时,jquery必须查找选择器(id1,id2,ect)。 但还有另一种方法可以避免查找选择器,具体如下: some content here some content here 和js代码: function f1(){ //do something here.. }); function f2(){ //do something else here.. }); 考虑到性能,哪种方法更好? 感谢帮助。

什么是jQuery选择器,用于在特定div中选择具有特定类的锚元素

我有一些像这样的代码,我想在div foo选择每个具有类status 标签 … … …

最有效*用Jquery ajax填充select的方法

我有几个选择,我使用JQuery Ajax填充。 大多数负载很好。 但是,这些查询中有一个或两个,在少数情况下会向选择返回大量记录。 我想知道我填充选择的方式是否是从客户端代码执行此操作的最有效方法。 我省略了一些东西,使代码更短。 $(function () { FillAwcDll() }); function FillAwcDll() { FillSelect(‘poleDdl’, ‘WebService.asmx/Pole’, params, false, null, false); } function ServiceCall(method, parameters, onSucess, onFailure) { var parms = “{” + (($.isArray(parameters)) ? parameters.join(‘,’) : parameters) + “}”; // to json var timer = setTimeout(tooLong, 100000); $.ajax({ type: “POST”, url: appRoot + “/services/” + […]

jQuery选择器:为什么$(“#id”)。find(“p”)比$(“#id p”)快

本页作者: http : //24ways.org/2011/your-jquery-now-with-less-suck断言jQuery选择器$(‘#id’).find(‘p’)比$(‘#id p’)更快$(‘#id p’) ,如果我理解正确,可能会产生相同的结果。 造成这种差异的原因是什么?