jQuery几乎无处不在,您可以在当今可用的著名网站上找到它,包括社交网站,微型博客等。jQuery确实很酷,而且非常有用,但是有时最好看看它的不同之处或另一面。 或对此进行改进。
改进jQuery将使您的网站加载速度更快,并执行类似的操作以帮助您的网站脱颖而出。 这可能包括jQuery脚本或通过Google代码或类似的代码。 就像我说的,最好是改进或编辑将由您的网站使用的jQuery插件或语法,以使其更加突出。
我在这里列出的十个技巧可以改善您的jQuery。
1.“就绪”事件的快捷方式
您是否讨厌输入?
$(document).ready(function (){
// your code
});
好吧,您可以为此做一个捷径,试试这个:
$(function (){
// your code
});
2.元素检查器
在操作元素之前,请确保检查该元素是否确实存在于页面上。 使用以下简单但不明显的代码:
if ($('#myDiv).length) {
// your code
}
3.使用其他框架时正确重命名jQuery对象
使用noconflict()jQuery函数来控制$的返回值,并允许您自己设置自己的变量名。
var $j = jQuery.noConflict();
$j('#myDiv').hide();
4.压缩您的jQuery脚本
一个大项目可能也意味着很多jQuery插件的使用。 但是请注意,这可能会减慢您的页面速度,因此您应该使用Dean Edwards的Packer压缩所有jQuery。 这是一个基于网络的JavaScript压缩程序。
5.最小化DOM操作
诸如.prepend().append().wrap()和.after()之类的DOM插入操作确实会使速度变慢。 您可以更快地编写代码; 您需要做的就是通过使用串联构建列表,然后,仅需使用函数即可将它们添加到无序的列表中,例如.html()会更快。
例:
var myList = $('#myList');
for (i=0; i<1000; i++){
myList.append('This is list item ' + i);
}
That example is relatively slow, but if you build the list item as a string and use the html method to do the insertion. You might want to try the following instead:
Example:
var myList = $('.myList');
var myListItems = '';
for (i = 0; i This is list item ' + i + '';
}
myList.html(myListItems);
那将使页面加载更快!
6.为选择器提供上下文
通常,如果使用$('。myDiv')这样的选择器,则肯定会遍历DOM,这取决于页面是否昂贵。
执行选择将使jQuery使用第二个参数。
jQuery(表达式,上下文)
通过将上下文放入单个选择器中,您将为该选择器提供一个以其开头的元素,因此它不必遍历整个DOM。
之前:
var selectedItem = $('#listItem' + i);
后:
var selectedItem = $('#listItem' + i, $('.myList'));
那应该加快速度!
7.正确使用动画
动画是jQuery的核心力量。 它真的很酷,并提供非常醒目的效果。
jQuery的.animate()方法非常易于使用且功能强大。 如果您在内部查看代码,那么这些方法将被简化并使用.animate()函数。
例:
slideDown: function(speed,callback){
return this.animate({height: "show"}, speed, callback);
},
fadeIn: function(speed, callback){
return this.animate({opacity: "show"}, speed, callback);
}
animate()函数仅更改元素的CSS属性,例如高度,宽度,颜色,不透明度,背景颜色等。
例:
$('#myList li').mouseover(function() {
$(this).animate({"height": 100}, "slow");
});
与jQuery其他功能不同,动画会自动排队。 如果要在第一个动画完成时执行另一个动画,则只需调用animate方法两次。
例:
$('#myBox').mouseover(function() {
$(this).animate({ "width": 200 }, "slow");
$(this).animate({"height": 200}, "slow");
});
如果要多个动画,请按照以下方式进行操作:
$('#myBox').mouseover(function() {
$(this).animate({ "width": 200, "height": 200 }, "slow");
});
8.做自己的选择器
jQuery有许多内置的选择器,可以通过ID,标签,属性等选择元素。 但是,如果需要基于jQuery没有选择器的其他元素来选择元素,该怎么办。
可能您应该从一开始就将类添加到元素,并使用它们来选择它们。 但这超出了jQuery易于扩展以添加新选择器的目的。
例:
$.extend($.expr[':'], {
over100pixels: function(a) {
return $(a).height() > 100;
}
});
$('.box:over100pixels').click(function() {
alert('The element you clicked is over 100 pixels high');
});
在第一个代码块中创建自定义选择器,该代码查找任何高度超过100像素的元素。
9.加快内容加载以获得SEO的好处
如果您认为如果整理HTML代码,则可以使页面加载更快。 没错,搜索蜘蛛过于懒惰,无法在页面其余部分加载后使用AJAX请求加载整个代码。 用户可以立即开始浏览,并且蜘蛛程序只会看到您希望它们索引的内容。
例:
$('#forms').load('content/headerForms.html', function() {
// Code here runs once the content has loaded
// Put all your event handlers etc. here.
});