Tag: 性能

jQuery DOM操作 – 性能比较?

我正在使用jQuery学习DOM操作,并希望了解浏览器性能最佳实践。 假设我有两个DOM元素(div,p,ol等),我希望用户只能看到第一个元素,然后才能看到第二个元素。 我可以: 使用replace() remove()第一个元素和add()第二个元素 hide()第一个元素,show()第二个元素 两者之间的性能差异是什么: 1对2 2比3 1对3 如果元素属于不同类型,是否还有其他性能考虑因素? 或者,如果元素是按钮或表单字段?

jQuery什么是更快:选择器或方法?

假设我有$(‘mySelector:first’); 和$(‘mySelector’).first(); 。 哪种方式最有效? 我查看了源代码,但仍然无法弄明白。 看起来在第一种情况下,jQuery会遍历每个项目,直到获得第一个项目: CHILD: function( elem, match ) { var type = match[1], node = elem; switch ( type ) { … case “first”: while ( (node = node.previousSibling) ) { if ( node.nodeType === 1 ) { return false; } } if ( type === “first” ) { return true; } […]

jquery setInterval或scroll

我正在做一个项目,我需要听scroll事件..我想知道什么是更好的方法.. 第一种方法 function scroll() { if ($(window).scrollTop() > 200) { top.fadeIn(); } else { top.fadeOut(); } if (menuVisible) { quickHideMenu(); } } 第二种方法 function scroll() { didScroll = true; } setInterval(function() { if ( didScroll ) { didScroll = false; if ($(window).scrollTop() > 200) { top.fadeIn(); } else { top.fadeOut(); } if (menuVisible) { quickHideMenu(); […]

OR运算(||)与inArray()的性能

假设您要检查用户在表单字段中输入的输入字符串。 对于可能的值列表,哪一个是检查此输入的最快方法? 以下示例使用jQuery 。 第一种方法:使用|| if (input == “firstValue” || input == “secondValue” || … ) { … } 第二种方法:使用inArray() if ($.inArray(input, array) >= 0) { … } 这两种方法之间是否存在显着差异?

根据用户计算机的性能禁用JavaScriptfunction

我的网站有一个jQuery脚本(来自Shadow animation jQuery插件 ),它不断改变主页上各种 的盒子阴影的颜色。 动画不是必需的,但它在较慢的机器上占用了大量的CPU时间。 是否有可能发现脚本是否会“运行得太慢”? 然后我可以在它影响性能之前禁用它。 这是一个好主意吗? 如果没有,是否有一种简单的方法来分解jQuery动画?

基于数字属性的DOM元素的更有效的jQuery排序方法

我有一些简单的jQuery编写基于数字属性对一些元素进行排序,如http://jsfiddle.net/MikeGrace/Vgavb/所示 // get array of elements var myArray = $(“#original div”); // sort based on timestamp attribute myArray.sort(function (a, b) { // convert to integers from strings a = parseInt($(a).attr(“timestamp”), 10); b = parseInt($(b).attr(“timestamp”), 10); // compare if(a > b) { return 1; } else if(a < b) { return -1; } else { return […]

如何优化javascript / jquery代码以加快其性能?

在我的一个Web项目中,我使用了大量的javascript / jQuery代码,这在浏览器(Windows 7 x64)上非常慢,尤其是在IE上。 我只在主页上同时使用3个Ajax请求。 在“搜索”页面上,我还使用了在滚动事件上触发的任何“搜索标记”(简单锚标记)点击事件等的ajax请求,这通常会使数据加载速度非常慢。 我使用jQuery插件,如Anythingslider,jquery coockies插件,Raty(评级插件),Tipsuy,jQuery coreUISelect,jScrollPane,鼠标滚轮等等。所有这些第三方插件我已经缩小并组合在jquery.plugins.js文件中,几乎是80KB。 我用jQuery选择了很多DOM元素。 例如,我使用以下代码: $(“#element”) 代替: document.getElementById(‘element’); 我还有一个很大的CSS文件,超过5 000行,因为我将所有第三方jQuery插件的css文件合并到一个文件中,用于缓存和减少HTTP请求。 好吧,我想知道,我能做些什么来优化我的代码以获得更好的性能并加快网页加载? 我可以用什么样的工具来调试我的JS代码? 我忘了提到,当我使用firebug或Chrome本机开发人员工具刷新Google Chrome或Firefox中的页面时,该情况下的页面加载速度也非常慢。 有时Firefox甚至被粉碎了。 使用原始js选择DOM元素会给我一个更好,更快的解析文档的方法吗? 或者我应该离开,jQuery选择? 谈论约50个元素。 我应该分开并在那之后缩小外部插件,例如Anythingslider? 或者当我拥有’all in one’js文件时它会更好吗? 是否更好地将jQuery插件的css代码与main style.css分开? 因为即使hover在元素上并影响css文件中的:hover状态,也非常慢。 好吧,伙计们,我真的指望着你。 我一直在谷歌搜索我的问题的答案,真的希望在这里找到它。 谢谢。

从谷歌CDN回退jQuery UI

如果从谷歌CDN抓取它失败,Html5 Boilerplate使用以下技巧回退到本地存储的JQuery: !window.jQuery && document.write(unescape(‘%3Cscript src=”js/libs/jquery-1.4.2.js”%3E%3C/script%3E’)) 你会如何实现这个技巧来为jQuery UI执行相同的技巧?

听取浏览器回流事件

我正在尝试收听浏览器reflow-events以了解代码的哪些部分是最昂贵的。 当必须(重新)绘制到屏幕上时,例如当将新元素添加到DOM时,会发生回流。 有没有办法在例如/用Javascript中监听这些事件,以便进一步分析?

android性能jquery phonegap问题

我们正在使用phonegap 1.1.0和jquery 1.0rc1缩小文件开发Android应用程序。 Android设备的性能非常慢.DOM加载需要时间来加载。我们如何优化Android中的dom加载