分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

Jquery使用规范(一)

发布时间:2023-09-06 01:34责任编辑:彭小芳关键词:暂无标签

经过长时间的积累,整理了一堆以帮助更多的人~

jQuery的加载

1、我们经常用CDN来加载网页,我之前的文章中也多次提及,点击查看使用CDN的好处,

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script>window.jQuery || document.write(‘<script src="js/jquery-2.1.1.min.js" type="text/javascript"><\/script>‘)</script>

2、最好在本地备份一个相同版本的代码,以防万一,不能链接远程服务。

3、使用裸协议的URL(去掉http:或者https:),如上面代码展示的那样,我在之前的文章中也提到过,加载CDN可以省掉http

4、如果可能,尽量将你的JavaScript和jQuery代码放到页面底部。

5.该使用哪个版本?

如果你想兼容IE678请不要用2.x的版本

针对极少数不用考虑兼容性问题的,极力推荐使用最新版本的jQuery

当从CDN服务器加载jQuery时,最好把版本写全(比如1.11.0而不是1.11或者直接写个1)

不要重复加载和多次加载

不要从jquery CDN中加载 jquery-latest.js 

6、如果你同时还使用了其他JS框架诸如Prototype, MooTools, Zepto等等,这些框架中,有的也用了$符号,所以你就不要再用$来进行jQuery 编码了,而请用‘jQuery‘代替。并且调用$.noConflict()保证不会有冲突出现。

 

关于变量

1、jQuery类型的变量最好加个$前缀。

2、时常将jQuery选择器返回的内容存进变量以便重用

var $myDiv = $("#myDiv");$myDiv.click(function(){...});

3、使用 camel case命名

4.指定选择的上下文。 

// 劣质的代码:因为需要遍历整个DOM来找到.class$(‘.class‘);// 高品代码:因为只需在指定容器范围内进行查找$(‘.class‘, ‘#class-container‘);

5. 避免使用万能选择器。

$(‘div.container > *‘); // 差$(‘div.container‘).children(); // 棒

6.警惕隐式的万能选择器。省略的情况下其实使用的就是*号通配符。

$(‘div.someclass :radio‘); // 差$(‘div.someclass input:radio‘); // 棒

7. ID已经表示唯一了,背后使用的是document.getElementById(),所以不要和其他选择器混淆了。 

$(‘#outer #inner‘); // 脏$(‘div#inner‘); // 乱$(‘.outer-container #inner‘); // 差$(‘#inner‘); // 干净利落,后台只需调用document.getElementById()

DOM操作

1.操作任何元素前先将其从文档卸载,然后再贴回去。

var $myList = $("#list-container > ul").detach();//...a lot of complicated things on $myList$myList.appendTo("#list-container");

2.不要用匿名函数来做事件的回调。匿名函数不易调试维护测试和复用。或许你想较真,看看这里吧

$("#myLink").on("click", function(){...}); // 不要这样// 这样function myLinkClickHandler(){...}$("#myLink").on("click", myLinkClickHandler);

3.处理文档ready事件的回调也表用匿名函数,匿名函数不易调试维护测试和复用

$(function(){ ... }); // 糟糕的做法:无法利用此函数也无法为其写测试用例// 好的做法$(initPage); // 抑或 $(document).ready(initPage);function initPage(){ ???// 这里你可以进行程序的初始化了}

4.进一步,最好也将ready事件的处理程序放到外部文件中引入到页面,而页面中内嵌的代码只需调用即可。

<script src="my-document-ready.js"></script><script> ???// 初始化一些必要的全局变量 ???$(document).ready(initPage); // 抑或 $(initPage);</script>

5.千万不要写内联到HTML的JS代码,这是调试的噩梦!应该总是用jQuery来绑定事件自带程序,这样也方便随时动态地取消绑定。

<a id="myLink" href="#" onclick="myEventHandler();">my link</a> <!--不好 -->$("#myLink").on("click", myEventHandler); // GOOD$("#parent-container").on("click", "a", delegatedClickHandlerForAjax);

6.使用Promise模式

$.ajax({ ... }).then(successHandler, failureHandler);// 抑或var jqxhr = $.ajax({ ... });jqxhr.done(successHandler);jqxhr.fail(failureHandler);

7.标准的Ajax模板如下,查看官方案例

var jqxhr = $.ajax({ ???url: url, ???type: "GET", // 默认为GET,你可以根据需要更改 ???cache: true, // 默认为true,但对于script,jsonp类型为false,可以自行设置 ???data: {}, // 将请求参数放这里. ???dataType: "json", // 指定想要的数据类型 ???jsonp: "callback", // 指定回调处理JSONP类型的请求 ???statusCode: { // 如果你想处理各状态的错误的话 ???????404: handler404, ???????500: handler500 ???}});jqxhr.done(successHandler);jqxhr.fail(failureHandler);

 

 

 

 

 

 

 

 

Jquery使用规范(一)

原文地址:https://www.cnblogs.com/guess/p/8213740.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved