您的位置:68399皇家赌场 > 服务器租用 > JQuery的开拓与应用体验

JQuery的开拓与应用体验

发布时间:2019-08-10 02:41编辑:服务器租用浏览(166)

    JQuery的支付与行使体验,jquery使用体验

    关于jQuery的

    入门使用jQuery能够很轻便或持有挑衅性的,那取决于你怎么着接纳JavaScript,HTML,CSS进行支付和编制程序。

    要知道一件器重的作业是,jQuery是只是三个JavaScript库。jQuery的有着机能特色都是透过JavaScript访谈,所以要对javascript丰裕的知晓,并能使其创设和调节和测量试验代码是必备。即便使用jQuery定时工作能够趁机时光的延迟,升高利用JavaScript的熟知程度,只怕未有JavaScript的放权结交涉语法的行使知识写jQuery很难上手。因而,假如您是新来的JavaScript,大家建议你查看的JavaScript基础教程 Mozilla开荒者网络(MDN)上,想掌握jquery的现实javascript完毕原理可去

    关于jQuery的

    入门使用jQuery能够很轻松或富有挑衅性的,那取决于你什么运用JavaScript,HTML,CSS进行支付和编制程序。

    要明了一件重大的专门的学业是,jQuery是只是一个JavaScript库。jQuery的具备功用特色都以经过JavaScript访谈,所以要对javascript足够的了解,并能使其创设和调节和测验代码是少不了。即使采用jQuery定时工作得以随着岁月的推迟,升高利用JavaScript的熟习程度,恐怕未有JavaScript的内置结会谈语法的应用知识写jQuery很难上手。因此,倘让你是新来的JavaScript,大家提出您查看的JavaScript基础教程 Mozilla开辟者网络(MDN)上,想明白jquery的现实javascript完结原理可去

    忙不是理由,好久没更新,懒惰了多数。谢谢各位(@春華秋實、@三桂)督促笔者更新排版结构,O2DS敬上。

    关于jQuery的

    入门使用jQuery可以很轻易或享有挑衅性的,那有赖于你什么运用JavaScript,HTML,CSS举办开荒和编制程序。

    要驾驭一件重大的作业是,jQuery是只是贰个JavaScript库。jQuery的具备功能特色都以经过JavaScript访问,所以要对javascript丰富的掌握,并能使其创设和调节和测验代码是不能缺少。即使采纳jQuery按期职业得以趁机时间的推迟,提升利用JavaScript的纯熟程度,只怕未有JavaScript的放权结商谈语法的运用知识写jQuery很难上手。由此,假如你是新来的JavaScript,大家提议您查看的JavaScript基础教程 Mozilla开采者网络(MDN)上,想了然jquery的有血有肉javascript完成原理可去

    怎么着jQuery的做事原理

    哪些jQuery的办事原理

    索引 jQuery

    如何jQuery的干活原理

    jQuery的:基础知识

    这是叁个中央的课程,意在帮助你使用jQuery上手。即使您从未二个测量试验页面设置呢,通过成立以下的HTML页面开首:

    1
    2
    3
    4
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Demo</title>
    </head>
    <body>
    <a href="http://jquery.com/">jQuery</a>
    <script src="jquery.js"></script>
    <script>
     
    // Your code goes here.
     
    </script>
    </body>
    </html>

    src质量中的<script>要素必须指向jQuery的别本。从下载的jQuery的别本下载jQuery的页面和仓库储存jquery.js文件在同等目录作为你的HTML文件。

    注意:当你下载的jQuery,文件名只怕富含二个本子号,例如jquery-x.y.z.js。请确定保障该公文也许重命名jquery.js或更新src的属性<script>相相称的文书名元素。

    jQuery的:基础知识

    那是八个着力的课程,意在救助您使用jQuery上手。借使您从未二个测量试验页面设置呢,通过创建以下的HTML页面初阶:

    1
    2
    3
    4
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Demo</title>
    </head>
    <body>
    <a href="http://jquery.com/">jQuery</a>
    <script src="jquery.js"></script>
    <script>
     
    // Your code goes here.
     
    </script>
    </body>
    </html>

    src个性中的<script>要素必须指向jQuery的别本。从下载的jQuery的副本下载jQuery的页面和仓储jquery.js文本在同等目录作为你的HTML文件。

    注意:当你下载的jQuery,文件名大概带有二个本子号,举例jquery-x.y.z.js。请确定保证该文件只怕重命名jquery.js或更新src的属性<script>相相配的文本名成分。

    • jQuery特点

    • 不唐突JavaScript

    • 使用jQuery

    jQuery的:基础知识

    那是壹当中坚的课程,目的在于救助您使用jQuery上手。如若您未有贰个测量试验页面设置呢,通过成立以下的HTML页面开端:

    1 2 3 4 五 6 7 8 9 10 11 12 13 14 15 16 <!doctype html> <html> <head> <meta charset="utf-8"> <title>Demo</title> </head> <body> <a href="http://jquery.com/">jQuery</a> <script src="jquery.js"></script> <script>   // Your code goes here.   </script> </body> </html>

    src天性中的<script>要素必须指向jQuery的别本。从下载的jQuery的别本下载jQuery的页面和积存jquery.js文本在同等目录作为你的HTML文件。

    注意:当你下载的jQuery,文件名恐怕包蕴贰个本子号,比方jquery-x.y.z.js。请确认保证该公文或然重命名jquery.js或更新src的属性<script>相相配的文书名成分。

    文书档案策动运行代码

    为了保险他们的代码运维在浏览器实现加载该文件,好些个JavaScript程序员包装自个儿的代码在后的onload功能:

    1
    2
    3
    4
    window.onload = function() {
     
    alert( "welcome" );
     
    };

    倒霉的是及早运作代码的公文已准备好进行操作,代码不运营,直到全部图像都下载落成,富含横幅广告。jQuery ready事件:

    1
    2
    3
    4
    $( document ).ready(function() {
     
    // Your code here.
     
    });

    :jQuery库通过的八个性情暴光它的方法和属性window调用的靶子jQuery$$是二个简约的别称jQuery,它的平时采纳,因为它是越来越短,越来越快地写。

    例如,在里面ready时,你能够加上八个单击处理程序的链接:

    1
    2
    3
    4
    6
    7
    8
    9
    $( document ).ready(function() {
     
    $( "a" ).click(function( event ) {
     
    alert( "Thanks for visiting!" );
     
    });
     
    });

    地点的jQuery代码复制到你的HTML文件,它说// Your code goes here。然后,保存您的HTML文件,然后在浏览器中刷新测验页。点击链接未来理应先出示一个警示弹出,然后继续导航到的默许行为http://jquery.com。

    对于click大非常多别样的事件,您能够通过调用阻止暗中认可行为event.preventDefault()的事件管理程序:

    1
    2
    3
    4
    6
    7
    8
    9
    10
    11
    $( document ).ready(function() {
     
    $( "a" ).click(function( event ) {
     
    alert( "As you can see, the link no longer took you to jquery.com" );
     
    event.preventDefault();
     
    });
     
    });

    品味更改您的jQuery代码,先前复制到您的HTML文件中第二个部分,与地方的之一。再一次保存HTML文件相提并论复加载尝试一下。

    文书档案计划运维代码

    为了确定保证他们的代码运营在浏览器达成加载该公文,好些个JavaScript程序猿包装自个儿的代码在后的onload功能:

    1
    2
    3
    4
    window.onload = function() {
     
    alert( "welcome" );
     
    };

    不幸的是尽早运维代码的文本已安不忘虞好开始展览操作,代码不运转,直到全体图像都下载完成,包罗横幅广告。jQuery ready事件:

    1
    2
    3
    4
    $( document ).ready(function() {
     
    // Your code here.
     
    });

    :jQuery库通过的八个属性揭发它的办法和总体性window调用的对象jQuery$$是贰个差非常少的小名jQuery,它的经常利用,因为它是越来越短,更加快地写。

    例如,在里面ready时,你能够增加三个单击管理程序的链接:

    1
    2
    3
    4
    6
    7
    8
    9
    $( document ).ready(function() {
     
    $( "a" ).click(function( event ) {
     
    alert( "Thanks for visiting!" );
     
    });
     
    });

    地点的jQuery代码复制到你的HTML文件,它说// Your code goes here。然后,保存您的HTML文件,然后在浏览器中刷新测验页。点击链接今后应超过出示三个警戒弹出,然后继续导航到的暗许行为http://jquery.com。

    对于click大部其余的事件,您能够透过调用阻止暗中同意行为event.preventDefault()的事件管理程序:

    1
    2
    3
    4
    6
    7
    8
    9
    10
    11
    $( document ).ready(function() {
     
    $( "a" ).click(function( event ) {
     
    alert( "As you can see, the link no longer took you to jquery.com" );
     
    event.preventDefault();
     
    });
     
    });

    尝试改换您的jQuery代码,先前复制到您的HTML文件中首先个部分,与地点的之一。再一次保存HTML文件并再一次加载尝试一下。

    AJAX助手

    文书档案策动运维代码

    为了保障他们的代码运营在浏览器实现加载该公文,多数JavaScript程序猿包装自个儿的代码在后的onload功能:

    1 2 3 4 五 window.onload = function() {   alert( "welcome" );   };

    噩运的是不久运维代码的文件已企图好举办操作,代码不运维,直到全体图像都下载完结,包蕴横幅广告。jQuery ready事件:

    1 2 3 4 五 $( document ).ready(function() {   // Your code here.   });

    :jQuery库通过的八个属性揭破它的主意和性质window调用的目的jQuery$$是多个简易的小名jQuery,它的平时使用,因为它是越来越短,越来越快地写。

    例如,在里面ready时,你能够增进二个单击管理程序的链接:

    1 2 3 4 五 6 7 8 9 $( document ).ready(function() {   $( "a" ).click(function( event ) {   alert( "Thanks for visiting!" );   });   });

    地点的jQuery代码复制到你的HTML文件,它说// Your code goes here。然后,保存您的HTML文件,然后在浏览器中刷新测量试验页。点击链接将来理应先出示贰个警示弹出,然后继续导航到的默许行为

    对于click好多别样的平地风波,您能够因此调用阻止暗中认可行为event.preventDefault()的事件管理程序:

    1 2 3 4 五 6 7 8 9 10 11 $( document ).ready(function() {   $( "a" ).click(function( event ) {   alert( "As you can see, the link no longer took you to jquery.com" );   event.preventDefault();   });   });

    尝试更动您的jQuery代码,先前复制到您的HTML文件中首先个部分,与地点的之一。再次保存HTML文件同等对待新加载尝试一下。

    完全的亲自过问

    上边包车型客车事例表达点击上边的拍卖代码的研商,直接在HTML嵌入<body>。注意,在施行中,它一般是最棒将代码在二个单身的JS文件并加载它与在页面上<script>的成分的src属性。

    1
    2
    3
    4
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Demo</title>
    </head>
    <body>
    <a href="http://jquery.com/">jQuery</a>
    <script src="jquery.js"></script>
    <script>
     
    $( document ).ready(function() {
    $( "a" ).click(function( event ) {
    alert( "The link will no longer take you to jquery.com" );
    event.preventDefault();
    });
    });
     
    </script>
    </body>
    </html>

    全部的亲自过问

    上边包车型客车事例表达点击上面包车型地铁管理代码的切磋,直接在HTML嵌入<body>。注意,在施行中,它平日是最佳将代码在三个独自的JS文件并加载它与在页面上<script>的要素的src属性。

    1
    2
    3
    4
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Demo</title>
    </head>
    <body>
    <a href="http://jquery.com/">jQuery</a>
    <script src="jquery.js"></script>
    <script>
     
    $( document ).ready(function() {
    $( "a" ).click(function( event ) {
    alert( "The link will no longer take you to jquery.com" );
    event.preventDefault();
    });
    });
     
    </script>
    </body>
    </html>
    • AJAX ActionLinks

    • HTML5属性

    • AJAX表单

    一体化的示范

    上边的例证表达点击上边的处理代码的商议,直接在HTML嵌入<body>。注意,在奉行中,它一般是最棒将代码在三个单独的JS文件并加载它与在页面上<script>的因素的src属性。

    1 2 3 4 五 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <!doctype html> <html> <head> <meta charset="utf-8"> <title>Demo</title> </head> <body> <a href="http://jquery.com/">jQuery</a> <script src="jquery.js"></script> <script>   $( document ).ready(function() { $( "a" ).click(function( event ) { alert( "The link will no longer take you to jquery.com" ); event.preventDefault(); }); });   </script> </body> </html>

    增加和删除二个HTML类

    尤为重要提醒:您必须将内部剩余的jQuery的例子ready事件,那样,当文书档案盘算职业在你的代码实施。

    另一种常见的任务正是丰硕或删除类。

    先是,增添一些体裁音信写入<head>文件,像那样的:

    • 1
    2
    3
    4
    <style>
    a.test {
    font-weight: bold;
    }
    </style>

    接下来,添加.addClass()调用脚本:

    1
    $( "a" ).addClass( "test" );

    所有的<a>要素以往字体加粗。

    要刨除现存类中,使用.removeClass() :

    1
    $( "a" ).removeClass( "test" );

    加上和删除一个HTML类

    根本提醒:您必须将中间剩余的jQuery的例证ready事件,那样,当文书档案打算职业在您的代码奉行。

    另一种常见的天职正是增进或删除类。

    第一,增添一些样式消息写入<head>文件,像这样的:

    • 1
    2
    3
    4
    <style>
    a.test {
    font-weight: bold;
    }
    </style>

    接下来,添加.addClass()调用脚本:

    1
    $( "a" ).addClass( "test" );

    所有的<a>要素未来字体加粗。

    要去除现有类中,使用.removeClass() :

    1
    $( "a" ).removeClass( "test" );

    客户端验证

    丰裕和删除三个HTML类

    特效

    jQuery的也提供了一部分福利的效果,以帮忙你令你的网址横空出世。举个例子,若是您创制一个click管理函数:

    1
    2
    3
    4
    6
    7
    $( "a" ).click(function( event ) {
     
    event.preventDefault();
     
    $( this ).hide( "slow" );
     
    });

    然后单击时慢慢链接消失。

    特效

    jQuery的也提供了有的利于的效果,以扶植您使您的网址平地而起。比如,借让你创设贰个click管理函数:

    1
    2
    3
    4
    6
    7
    $( "a" ).click(function( event ) {
     
    event.preventDefault();
     
    $( this ).hide( "slow" );
     
    });

    然后单击时慢慢链接消失。

    • 自定义表明

    关键提示:你必须将当中剩余的jQuery的例证ready事件,那样,当文书档案策画干活在您的代码实践。

    另一种广泛的任务正是加上或删除类。

    首先,加多一些体制新闻写入<head>文本,像这么的:

    • 1
    2 3 4 五
    <style> a.test { font-weight: bold; } </style>

    接下去,增加.addClass()调用脚本:

    1 $( "a" ).addClass( "test" );

    所有的<a>要素现在字体加粗。

    要刨除现存类中,使用.removeClass() :

    1 $( "a" ).removeClass( "test" );

    回调剂函数

    不像非常多别样编制程序语言,JavaScript的,能够任意地绕过功用在稍后的岁月施行。二个回调是当做参数传递给另贰个函数字传送递与其父效能实现后试行的函数。回调是差别平常的,因为他俩耐心地等候试行,直到他们的大人实现。同时,浏览器能够实行其他功用或做别的各样的干活。

    要选择回调,要精晓哪些将它们传递到它们的父功用是极度首要的。

    回调剂函数

    不像好些个别样编制程序语言,JavaScript的,能够随便地绕过作用在稍后的年华实行。一个回调是用作参数字传送递给另一个函数字传送递与其父功能落成后进行的函数。回调是非常的,因为他俩耐心地等待施行,直到他们的爹娘落成。同临时候,浏览器能够施行别的作用或做其余各个的职业。

    要运用回调,要精通什么将它们传递到它们的父效能是异常首要的。

    独立帮手

    特效

    jQuery的也提供了部分方便人民群众的作用,以赞助你让你的网址横空出世。例如,若是您创设二个click管理函数:

    1 2 3 4 五 6 7 $( "a" ).click(function( event ) {   event.preventDefault();   $( this ).hide( "slow" );   });

    接下来单击时慢慢链接消失。

    回调争论

    一旦回调未有参数,你能够将它传递那样的:

    1
    $.get( "myhtmlpage.html", myCallBack );

    当$获得()完获取的页面myhtmlpage.html,它执行myCallBack()的功能。

    • 注:此地的第二个参数是归纳的函数名称(而不是作为一个字符串,而没有括号)。

    回调争论

    如果回调未有参数,你能够将它传递那样的:

    1
    $.get( "myhtmlpage.html", myCallBack );

    当$获得()完获取的页面myhtmlpage.html,它执行myCallBack()的功能。

    • 注:此地的第贰个参数是粗略的函数名称(而不是作为贰个字符串,而从不括号)。
    • jQuery UI

    • JSON和jQuery模板

    回调理函数

    不像大多任何编制程序语言,JavaScript的,能够从心所欲地绕过功效在稍后的时间执行。一个回调是当做参数字传送递给另三个函数字传送递与其父成效达成后实施的函数。回调是新鲜的,因为她俩耐心地伺机实行,直到他们的家长实现。同期,浏览器能够实践别的功效或做其它种种的行事。

    要选择回调,要清楚什么将它们传递到它们的父效率是比较重大的。

    回调参数

    带参数推行回调只怕会格外困难。

    回调参数

    带参数施行回调只怕会格外讨厌。

    改善AJAX性能

    回调争论

    假若回调未有参数,你能够将它传递那样的:

    1 $.get( "myhtmlpage.html", myCallBack );

    当$获得()完获取的页面myhtmlpage.html,它执行myCallBack()的功能。

    • 注:此间的第二个参数是简约的函数名称(而不是作为三个字符串,而从不括号)。

    错误

    此代码示例将无法正规干活:

    1
    $.get( "myhtmlpage.html", myCallBack( param1, param2 ) );

    未果的原故是,代码实行myCallBack( param1, param2 )立马,然后通过myCallBack()返回值用作第贰个参数$.get()。实际上,大家期待传递给函数myCallBack(),而不是myCallBack( param1, param2 )的再次来到值(那可能是也大概不是二个函数)。那么,如何传递myCallBack() 包含它的参数?

    延期施行myCallBack()其参数,你可以采纳佚名函数作为包装。使用注意事项function() {。佚名函数就是一件事:通话myCallBack(),用的价值观param1param2

    1
    2
    3
    4
    $.get( "myhtmlpage.html", function() {
     
    myCallBack( param1, param2 );
     
    });

    $.get()姣好后获得的页面myhtmlpage.html,它实践的无名氏函数,该函数奉行myCallBack( param1, param2 )

    错误

    此代码示例将无法正规干活:

    1
    $.get( "myhtmlpage.html", myCallBack( param1, param2 ) );

    曲折的原因是,代码执行myCallBack( param1, param2 )随即,然后通过myCallBack()返回值用作第4个参数$.get()。实际上,大家愿意传递给函数myCallBack(),而不是myCallBack( param1, param2 )的重返值(那或者是也可能不是五个函数)。那么,如何传递myCallBack() 满含它的参数?

    延期推行myCallBack()其参数,你能够应用佚名函数作为包装。使用注意事项function() {。无名函数就是一件事:通话myCallBack(),用的价值观param1param2

    1
    2
    3
    4
    $.get( "myhtmlpage.html", function() {
     
    myCallBack( param1, param2 );
     
    });

    $.get()完了后得到的页面myhtmlpage.html,它实行的无名氏函数,该函数实践myCallBack( param1, param2 )

    • 行使内容分发网络(CDN)

    • 本子优化

    回调参数

    带参数实践回调恐怕会非凡吃力。

    优化采取器

    选用器的运用是对质量有非常大的考验,所以在动用选拔器的时候需求当心了。

    优化接纳器

    采用器的选拔是对品质有非常大的考验,所以在运用采取器的时候需求小心了。

    小结

    错误

    此代码示例将无法正规干活:

    1 $.get( "myhtmlpage.html", myCallBack( param1, param2 ) );

    曲折的原由是,代码实施myCallBack( param1, param2 )立即,然后通过myCallBack()返回值作为第三个参数$.get()。实际上,大家愿意传递给函数myCallBack(),而不是myCallBack( param1, param2 )的重回值(那或者是也大概不是贰个函数)。那么,怎样传递myCallBack() 席卷它的参数?

    延期施行myCallBack()其参数,你能够利用无名氏函数作为包装。使用注意事项function() {。佚名函数正是一件事:通话myCallBack(),用的观念param1param2

    1 2 3 4 五 $.get( "myhtmlpage.html", function() {   myCallBack( param1, param2 );   });

    $.get()完结后获取的页面myhtmlpage.html,它试行的无名氏函数,该函数实践myCallBack( param1, param2 )

    jQuery的扩展

    假设大概的话,应避使用jQuery的扩展选用器。这个扩展无法应用由本机提供的性质升高的querySelectorAll()DOM方法,因而,需求利用的jQuery提供的选用器引擎。

    1
    2
    3
    4
    // Slower (the zero-based :even selector is a jQuery extension)
    $( "#my-table tr:even" );
     
    // Better, though not exactly equivalent
    $( "#my-table tr:nth-child(odd)" );

    请记住,很多jQuery的扩展,包括:even在上头的例证中,没有在CSS标准内。在有个别情形下,这一个扩大的便利性只怕超过其性质开支。

    jQuery的扩展

    倘若大概的话,应避使用jQuery的扩展选取器。那个扩大无法应用由本机提供的品质提高的querySelectorAll()DOM方法,因而,须要运用的jQuery提供的选取器引擎。

    1
    2
    3
    4
    // Slower (the zero-based :even selector is a jQuery extension)
    $( "#my-table tr:even" );
     
    // Better, though not exactly equivalent
    $( "#my-table tr:nth-child(odd)" );

    请记住,很多jQuery的扩展,包括:even在上边的例子中,未有在CSS标准内。在一些情状下,那一个扩大的便利性恐怕超越其属性花费。


    优化选拔器

    接纳器的采纳是对品质有相当大的考验,所以在运用选取器的时候必要小心了。

    制止超负荷特异性

    1
    2
    3
    4
    $( ".data table.attendees td.gonzalez" );
     
    // Better: Drop the middle if possible.
    $( ".data td.gonzalez" );

    三个“简单介绍的”DOM也是有利于增长品质的取舍,因为选用器引擎有越来越少的层寻觅一个跨度的因素。

    幸免超负荷特异性

    1
    2
    3
    4
    $( ".data table.attendees td.gonzalez" );
     
    // Better: Drop the middle if possible.
    $( ".data td.gonzalez" );

    三个“简要介绍的”DOM也推进压实性能的抉择,因为选用器引擎有越来越少的层搜索一个跨度的要素。

    关爱焦点

    jQuery的扩展

    假定或者的话,应避使用jQuery的扩公投择器。那么些扩展不能使用由本机提供的品质进步的querySelectorAll()DOM方法,由此,须要选择的jQuery提供的选择器引擎。

    1 2 3 4 五 // Slower (the zero-based :even selector is a jQuery extension) $( "#my-table tr:even" );   // Better, though not exactly equivalent $( "#my-table tr:nth-child(odd)" );

    请记住,很多jQuery的扩展,包括:even在地方的例证中,未有在CSS标准内。在少数情形下,那几个扩大的便利性可能凌驾其特性花费。

    基于ID选择器

    三个id选取器有早晚的安全性。

    1
    2
    3
    4
    // Fast:
    $( "#container div.robotarm" );
     
    // Super-fast:
    $( "#container" ).find( "div.robotarm" );

    与第一种艺术相比较,jQuery的查询利用DOM document.querySelectorAll()。第1个例证中,jQuery使用document.getElementById(),这是更加快。

    基于ID选择器

    三个id采纳器有早晚的安全性。

    1
    2
    3
    4
    // Fast:
    $( "#container div.robotarm" );
     
    // Super-fast:
    $( "#container" ).find( "div.robotarm" );

    与第一种方式相比,jQuery的查询利用DOM document.querySelectorAll()。第三个例子中,jQuery使用document.getElementById(),那是更加快。

    • 具备你想清楚的jQuery
    • AJAX Helper
    • 深切摸底客户端验证
    • 使用jQuery插件

    制止过度特异性

    1 2 3 4 $( ".data table.attendees td.gonzalez" );   // Better: Drop the middle if possible. $( ".data td.gonzalez" );

    八个“简要介绍的”DOM也拉动加强质量的抉择,因为采用器引擎有越来越少的层搜索二个跨度的要素。

    提示旧的浏览器

    当旧的浏览器,如Internet Explorer 8和凡尘支撑,是须求的,请思索以下提出:

    提醒旧的浏览器

    当旧的浏览器,如Internet Explorer 8和凡尘支撑,是要求的,请考虑以下指出:

    如今非常少见有Web应用不应用AJAX本事的。AJAX是Asynchronous JavaScript and XML的缩写。在施行中,AJAX主张选取任何能力来创设最好用户体验的Web应用程序。在骨子里运用中,使用到了一部分异步通讯,然后再响应时,再帮忙一些交相辉映的动画和颜料的扭转。假诺你可以为用户提供更加好的应用程序的用户体验,让他俩能够越来越快捷的行事,他们会愈加爱您!

    基于ID选择器

    一个id选择器有确定的安全性。

    1 2 3 4 五 // Fast: $( "#container div.robotarm" );   // Super-fast: $( "#container" ).find( "div.robotarm" );

    与第一种情势相比较,jQuery的查询利用DOM document.querySelectorAll()。第4个例子中,jQuery使用document.getElementById(),那是越来越快。

    特异性

    选用器的左侧面

    1
    2
    3
    4
    // Unoptimized:
    $( "div.data .gonzalez" );
     
    // Optimized:
    $( ".data td.gonzalez" );

    使用tag.class设若恐怕的话放选用器的最右面,只是标签或只.class在选择器的最左边

    特异性

    选择器的左左侧

    1
    2
    3
    4
    // Unoptimized:
    $( "div.data .gonzalez" );
     
    // Optimized:
    $( ".data td.gonzalez" );

    使用tag.class假定可能的话放选取器的最侧边,只是标签或只.class在选择器的最左边

    ASP.NET MVC 3是三个今世的Web框架,像每二个当代的Web框架一样,从一初步就能够有支撑AJAX的权力和权利。其帮忙AJAX的主旨来自于jQuery的JavaScript库。全数ASP.NET MVC3的AJAX功效都以创制并增添自jQuery的功效。

    提示旧的浏览器

    当旧的浏览器,如Internet Explorer 8和江湖支撑,是少不了的,请思量以下建议:

    制止通用采取

    通配符采用尽管会减弱代码做越多职业 ,可是效能异常的低。

    1
    2
    3
    4
    6
    $( ".buttons > *" ); // Extremely expensive.
    $( ".buttons" ).children(); // Much better.
     
    $( ":radio" ); // Implied universal selection.
    $( "*:radio" ); // Same thing, explicit now.
    $( "input:radio" ); // Much better.

    幸免通用选拔

    通配符选拔纵然会减小代码做越多事情 ,不过功效非常低。

    1
    2
    3
    4
    6
    $( ".buttons > *" ); // Extremely expensive.
    $( ".buttons" ).children(); // Much better.
     
    $( ":radio" ); // Implied universal selection.
    $( "*:radio" ); // Same thing, explicit now.
    $( "input:radio" ); // Much better.

    要想驾驭ASP.NET MVC3中的AJAX作用怎么接纳,就不可能不先从jQuery开始开头。

    特异性

    选取器的左左边

    1 2 3 4 五 // Unoptimized: $( "div.data .gonzalez" );   // Optimized: $( ".data td.gonzalez" );

    使用tag.class如若可能的话放采纳器的最侧边,只是标签或只.class在选择器的最左边

    代码组织概念

    当你超过加多轻便的精雕细刻自个儿的网址选拔jQuery并发轫拟订周全的客户端应用程序,你须要思考怎么组织你的代码。在本章中,我们将看看你能够在你的jQuery应用程序中选取的各类代码的集团情势和追究RequireJS依赖管理和构建系统。

    代码组织概念

    当你当先增多简单的立异本人的网址采用jQuery并初阶制订健全的客户端应用程序,你须要怀想什么组织你的代码。在本章中,大家将看看您能够在你的jQuery应用程序中使用的各样代码的公司方式和索求RequireJS正视管理和创设系统。

    jQuery

    幸免通用选拔

    通配符选用尽管会回降代码做越多事情 ,不过成效相当的低。

    1 2 3 4 五 6 $( ".buttons > *" ); // Extremely expensive. $( ".buttons" ).children(); // Much better.   $( ":radio" ); // Implied universal selection. $( "*:radio" ); // Same thing, explicit now. $( "input:radio" ); // Much better.

    重要概念

    从前,大家跳进代码的团伙情势,了然部分定义是持有好的代码的公司格局是非常重大的。

    • 你的代码应分为成效单位-模块,服务等,由此要防止把富有的代码在二个宏大的$( document ).ready()块。这些概念,松散的,被称之为封装。
    • 不用再一次本人。找寻一般的成效块之间,并选择持续技艺,防止止再一次的代码。
    • 固然jQuery的DOM为中央的质量,JavaScript应用程序是或不是独具的DOM。请牢记,不是怀有的作用块须要 - 或然应当 - 有三个DOM表示。
    • 效益单位应松耦合,即,效率单元应该能够在其和睦的存在,和单元之间的通信应经由消息收发系统,诸如自定义事件或公布/订阅管理。成效单元之间维持直接沟通远只要有相当大希望。

    麻痹大要耦合的概念可能是特意麻烦的开采人士使他们的率先次踏足复杂的应用程序,进而为您初始在意那一点。

    首要概念

    事先,我们跳进代码的团队情势,领悟一些概念是具备好的代码的团伙格局是很入眼的。

    • 您的代码应分为功用单位-模块,服务等,因而要制止把具备的代码在贰个巨大的$( document ).ready()块。那个定义,松散的,被称为封装。
    • 决不再度本人。找寻一般的功效块之间,并运用持续手艺,以幸免重新的代码。
    • 尽管jQuery的DOM为着力的性质,JavaScript应用程序是还是不是全部的DOM。请记住,不是具备的作用块必要 - 只怕应当 - 有三个DOM表示。
    • 意义单位应松耦合,即,成效单元应该力所能致在其和谐的留存,和单元之间的通讯应经由音讯收发系统,诸如自定义事件或发布/订阅管理。功能单元之间保持间接关联远只要有相当的大可能。

    麻痹概况耦合的定义恐怕是特意辛苦的开采职员使她们的首先次插足复杂的应用程序,从而为你初叶留意那或多或少。

    jQuery的口号是“少写,多做”,口号完美的汇报了jQuery的体验。API简洁,可是效用庞大,库本人灵活而轻量级。最珍视的是,jQuery帮助拥有当代浏览器(包涵IE、Firefox、Safari、Opera和Chrome),并逃匿了过多不平等的接口(和谬误),您大概会蒙受针对不相同的浏览器提供不相同的API而提供不相同的代码。使用jQuery,不独有写越来越少的代码,并能在越来越短的时日内做到职业,並且也能确认保障头发始终维持在头顶上。

    代码组织概念

    当你当先增多轻便的改良自个儿的网址选用jQuery并起首制定完善的客户端应用程序,你须求思索如何协会你的代码。在本章中,大家将看看你能够在你的jQuery应用程序中应用的种种代码的团协会格局和查究RequireJS依赖管理和营造系统。

    封装

    第一步代码组织分离您的应用程序为不一样的零部件; 一时,乃至只是那方面包车型客车做的好才满足开辟须求。

    封装

    先是步代码组织分离您的应用程序为不一样的零件; 一时,以至只是那上边的做的好才满足开拓须求。

    jQuery是日前最风靡的JavaScript库之一,並且还是照旧三个开源项目。在jQuery.com网址上您能够找到并下载最新版本的库、文书档案和插件。你能够在ASP.NET MVC应用程序中找到jQuery。微软支持jQuery,当你创立八个新的MVC项目时,ASP.NET MVC项目模板会将您所需的jQuery文件放置在Scripts文件夹。

    尤为重要概念

    后面,大家跳进代码的集人体模型式,理解部分定义是全部好的代码的团队格局是很首要的。

    • 你的代码应分为功用单位-模块,服务等,由此要制止把全部的代码在一个伟大的$( document ).ready()块。那些概念,松散的,被叫做封装。
    • 毫不再一次自身。寻找一般的作用块之间,并行使持续技巧,以幸免重复的代码。
    • 就算jQuery的DOM为基本的性子,JavaScript应用程序是否具备的DOM。请牢记,不是享有的效能块要求 - 也许应当 - 有三个DOM表示。
    • 效益单位应松耦合,即,功用单元应该力所能致在其和煦的留存,和单元之间的通讯应经由音讯收发系统,诸如自定义事件或发表/订阅管理。功用单元之间保持直接关联远只要有一点都不小恐怕。

    麻痹大要耦合的定义也许是极其劳顿的开垦职员使她们的首先次参加复杂的应用程序,进而为你起始留神那或多或少。

    目的常量

    三个对象字面可能是包装相关的代码最简便的法子。它不提供属性或艺术的其余隐秘的,但它是割除无名函数从代码中,聚集的布局选项,并简化重用和重构的门道特别管用。

    1
    2
    3
    4
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // An object literal
    var myFeature = {
    myProperty: "hello",
     
    myMethod: function() {
    console.log( myFeature.myProperty );
    },
     
    init: function( settings ) {
    myFeature.settings = settings;
    },
     
    readSettings: function() {
    console.log( myFeature.settings );
    }
    };
     
    myFeature.myProperty === "hello"; // true
     
    myFeature.myMethod(); // "hello"
     
    myFeature.init({
    foo: "bar"
    });
     
    myFeature.readSettings(); // { foo: "bar" }

    对象方面包车型大巴文字几乎是分配给三个变量的对象。对象具备叁天性质和二种方法。全部属性和情势都以明目张胆的,由此你的应用程序的其余部分能够观察该对象的品质和调用方法。就算有一个init方法,未有啥样必要后面包车型大巴靶子是职能,它被调用。

    大家如何选取此方式jQuery代码?比如说,我们有其一代码写在价值观的jQuery风格:

    1
    2
    3
    4
    6
    7
    8
    9
    10
    11
    12
    // Clicking on a list item loads some content using the
    // list item's ID, and hides content in sibling list items
    $( document ).ready(function() {
    $( "#myFeature li" ).append( "<div>" ).click(function() {
    var item = $( this );
    var div = item.find( "div" );
    div.load( "foo.php?item=" item.attr( "id" ), function() {
    div.show();
    item.siblings().find( "div" ).hide();
    });
    });
    });

    一经那是大家的应用程序的限量,那样的施用是不好的。在一面,假若这是一块越来越大的应用程序中,大家会做的很好,保持那个职能不相干的效率分别。大家只怕还亟需活动USportageL出代码,并形成贰个布署区域。最终,大家可能要提取链接地址,使其更便于为之后修改的作用块。

    1
    2
    3
    4
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    三十
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    // Using an object literal for a jQuery feature
    var myFeature = {
    init: function( settings ) {
    myFeature.config = {
    items: $( "#myFeature li" ),
    container: $( "<div class='container'></div>" ),
    urlBase: "/foo.php?item="
    };
     
    // Allow overriding the default config
    $.extend( myFeature.config, settings );
     
    myFeature.setup();
    },
     
    setup: function() {
    myFeature.config.items
    .each( myFeature.createContainer )
    .click( myFeature.showItem );
    },
     
    createContainer: function() {
    var item = $( this );
    var container = myFeature.config.container
    .clone()
    .appendTo( item );
    item.data( "container", container );
    },
     
    buildUrl: function() {
    return myFeature.config.urlBase myFeature.currentItem.attr( "id" );
    },
     
    showItem: function() {
    myFeature.currentItem = $( this );
    myFeature.getContent( myFeature.showContent );
    },
     
    getContent: function( callback ) {
    var url = myFeature.buildUrl();
    myFeature.currentItem.data( "container" ).load( url, callback );
    },
     
    showContent: function() {
    myFeature.currentItem.data( "container" ).show();
    myFeature.hideContent();
    },
     
    hideContent: function() {
    myFeature.currentItem.siblings().each(function() {
    $( this ).data( "container" ).hide();
    });
    }
    };
     
    $( document ).ready( myFeature.init );

    您会小心到的第一件事是,这种做法分明比原本要长 - 再一次,借使那是我们的应用程序的限量,使用对象文本很恐怕是矫枉过正。假使那不是我们的应用程序的限定,即使,大家已经取得了几件职业:

    • 大家曾经打破我们的效果成一线的秘诀。在今后,即使大家想改造内容的显示形式,很扎眼的地点去改造它。在前期的代码中,这一步是更难找到。
    • 咱俩早已去掉了选取佚名函数。
    • 作者们早就搬出了代码的本位布局选项,并把它们在贰个核心地方。
    • 我们早就解除了链子的制约,使代码更便于重构,重新混音和重新排列。

    对于入眼的成效,对象文本一条长长的代码显然改正$( document ).ready()块,因为他俩让我们思量大家的作用块。可是,他们不是一大堆不仅是具备内部一批函数阐明更上进的$( document ).ready()块。

    目的常量

    贰个指标字面恐怕是包装相关的代码最简易的点子。它不提供属性或措施的别的隐秘的,但它是破除无名氏函数从代码中,聚焦的布署选项,并简化重用和重构的路子特别有效。

    1
    2
    3
    4
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // An object literal
    var myFeature = {
    myProperty: "hello",
     
    myMethod: function() {
    console.log( myFeature.myProperty );
    },
     
    init: function( settings ) {
    myFeature.settings = settings;
    },
     
    readSettings: function() {
    console.log( myFeature.settings );
    }
    };
     
    myFeature.myProperty === "hello"; // true
     
    myFeature.myMethod(); // "hello"
     
    myFeature.init({
    foo: "bar"
    });
     
    myFeature.readSettings(); // { foo: "bar" }

    指标方面的文字简直是分配给二个变量的指标。对象具有二个属性和两种格局。全体属性和情势都是开诚相见的,因而你的应用程序的其他部分能够看出该指标的天性和调用方法。纵然有二个init方法,未有何样必要事先的对象是功用,它被调用。

    咱俩怎么采纳此方式jQuery代码?举例说,我们有这么些代码写在思想的jQuery风格:

    1
    2
    3
    4
    6
    7
    8
    9
    10
    11
    12
    // Clicking on a list item loads some content using the
    // list item's ID, and hides content in sibling list items
    $( document ).ready(function() {
    $( "#myFeature li" ).append( "<div>" ).click(function() {
    var item = $( this );
    var div = item.find( "div" );
    div.load( "foo.php?item=" item.attr( "id" ), function() {
    div.show();
    item.siblings().find( "div" ).hide();
    });
    });
    });

    要是那是大家的应用程序的限量,那样的选择是倒霉的。在另一方面,假使那是一块更加大的应用程序中,大家会做的很好,保持这几个效果不相干的功能分别。我们兴许还索要活动UEscortL出代码,并成为七个布局区域。最终,我们恐怕要提取链接地址,使其更便于为之后修改的功效块。

    1
    2
    3
    4
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    三十
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    // Using an object literal for a jQuery feature
    var myFeature = {
    init: function( settings ) {
    myFeature.config = {
    items: $( "#myFeature li" ),
    container: $( "<div class='container'></div>" ),
    urlBase: "/foo.php?item="
    };
     
    // Allow overriding the default config
    $.extend( myFeature.config, settings );
     
    myFeature.setup();
    },
     
    setup: function() {
    myFeature.config.items
    .each( myFeature.createContainer )
    .click( myFeature.showItem );
    },
     
    createContainer: function() {
    var item = $( this );
    var container = myFeature.config.container
    .clone()
    .appendTo( item );
    item.data( "container", container );
    },
     
    buildUrl: function() {
    return myFeature.config.urlBase myFeature.currentItem.attr( "id" );
    },
     
    showItem: function() {
    myFeature.currentItem = $( this );
    myFeature.getContent( myFeature.showContent );
    },
     
    getContent: function( callback ) {
    var url = myFeature.buildUrl();
    myFeature.currentItem.data( "container" ).load( url, callback );
    },
     
    showContent: function() {
    myFeature.currentItem.data( "container" ).show();
    myFeature.hideContent();
    },
     
    hideContent: function() {
    myFeature.currentItem.siblings().each(function() {
    $( this ).data( "container" ).hide();
    });
    }
    };
     
    $( document ).ready( myFeature.init );

    您会注意到的率先件事是,这种做法显著比原来要长 - 再度,如若那是大家的应用程序的限制,使用对象文本很恐怕是矫枉过正。若是那不是大家的应用程序的限定,即使,大家已经获得了几件事情:

    • 我们曾经打破大家的效果成一线的艺术。在今后,假若我们想退换内容的显示方式,很确定的地点去改换它。在前期的代码中,这一步是更难找到。
    • 咱俩早已排除了利用无名函数。
    • 小编们早就搬出了代码的主体布局选项,并把它们在三个大旨地点。
    • 笔者们早就去掉了链子的制约,使代码更便于重构,重新混音和重新排列。

    对于主要的功用,对象文本一条长长的代码显著改良$( document ).ready()块,因为他俩让大家思虑大家的作用块。不过,他们不是一大堆不止是具备内部一批函数注明更先进的$( document ).ready()块。

    在本章中,你会看到在MVC框架中动用jQuery来贯彻客户端验证和异步央浼等功效。在大家深深领悟ASP.NET MVC底层功用从前,让大家来非常快浏览下jQuery的底部功用。

    封装

    首先步代码协会分离您的应用程序为不一致的零件; 有的时候,以至只是这上头的做的好才知足开荒须要。

    模块方式

    模块方式征服一些对象的文字的限量,提供变量和函数的隐情,同期纵然须要的话曝光公共API。

    1
    2
    3
    4
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    // The module pattern
    var feature = (function() {
     
    // Private variables and functions
    var privateThing = "secret";
    var publicThing = "not secret";
     
    var changePrivateThing = function() {
    privateThing = "super secret";
    };
     
    var sayPrivateThing = function() {
    console.log( privateThing );
    changePrivateThing();
    };
     
    // Public API
    return {
    publicThing: publicThing,
    sayPrivateThing: sayPrivateThing
    };
    })();
     
    feature.publicThing; // "not secret"
     
    // Logs "secret" and changes the value of privateThing
    feature.sayPrivateThing();

    在地方的例证中,我们自实行回来的对象的佚名函数。里面的效果与利益,大家定义了一些变量。因为变量的函数的中间定义,大家不有所的法力的表面访谈它们,除非我们把它们再次回到的指标。那象征函数以外未有代码访谈该privateThing变量或往changePrivateThing功能。不过,sayPrivateThing也是有机缘取得privateThingchangePrivateThing,因为五人都在同一范围定义sayPrivateThing

    这种情势是强大的,因为你能够从变量名集中,它能够给您私人的变量和函数同一时间揭穿满含重回的对象的习性和措施的点滴的API。

    下边是前方的例证的修订版本,体现我们得以什么运用模块方式,而唯有透露模块的三个国有措施创建同样的职能,showItemByIndex()

    1
    2
    3
    4
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    三十
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    // Using the module pattern for a jQuery feature
    $( document ).ready(function() {
    var feature = (function() {
    var items = $( "#myFeature li" );
    var container = $( "<div class='container'></div>" );
    var currentItem = null;
    var urlBase = "/foo.php?item=";
     
    var createContainer = function() {
    var item = $( this );
    var _container = container.clone().appendTo( item );
    item.data( "container", _container );
    };
     
    var buildUrl = function() {
    return urlBase currentItem.attr( "id" );
    };
     
    var showItem = function() {
    currentItem = $( this );
    getContent( showContent );
    };
     
    var showItemByIndex = function( idx ) {
    $.proxy( showItem, items.get( idx ) );
    };
     
    var getContent = function( callback ) {
    currentItem.data( "container" ).load( buildUrl(), callback );
    };
     
    var showContent = function() {
    currentItem.data( "container" ).show();
    hideContent();
    };
     
    var hideContent = function() {
    currentItem.siblings().each(function() {
    $( this ).data( "container" ).hide();
    });
    };
     
    items.each( createContainer ).click( showItem );
     
    return {
    showItemByIndex: showItemByIndex
    };
    })();
     
    feature.showItemByIndex( 0 );
    });

    模块形式

    模块形式克服一些指标的文字的范围,提供变量和函数的隐衷,同期假若须求的话暴露公共API。

    1
    2
    3
    4
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    // The module pattern
    var feature = (function() {
     
    // Private variables and functions
    var privateThing = "secret";
    var publicThing = "not secret";
     
    var changePrivateThing = function() {
    privateThing = "super secret";
    };
     
    var sayPrivateThing = function() {
    console.log( privateThing );
    changePrivateThing();
    };
     
    // Public API
    return {
    publicThing: publicThing,
    sayPrivateThing: sayPrivateThing
    };
    })();
     
    feature.publicThing; // "not secret"
     
    // Logs "secret" and changes the value of privateThing
    feature.sayPrivateThing();

    在下面的事例中,大家自推行回来的目的的无名函数。里面包车型地铁成效,大家定义了有些变量。因为变量的函数的里边定义,大家不享有的成效的外表访谈它们,除非大家把它们再次来到的靶子。那意味着函数以外未有代码访谈该privateThing变量或往changePrivateThing功能。不过,sayPrivateThing也会有时机得到privateThingchangePrivateThing,因为四个人都在同等范围定义sayPrivateThing

    这种情势是强硬的,因为您能够从变量名集中,它能够给你私人的变量和函数同期揭穿包含再次来到的对象的天性和措施的星星点点的API。

    上边是前方的例证的修订版本,展示我们得以什么行使模块情势,而独有揭露模块的一个共用措施创造一样的效力,showItemByIndex()

    1
    2
    3
    4
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    三十
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    // Using the module pattern for a jQuery feature
    $( document ).ready(function() {
    var feature = (function() {
    var items = $( "#myFeature li" );
    var container = $( "<div class='container'></div>" );
    var currentItem = null;
    var urlBase = "/foo.php?item=";
     
    var createContainer = function() {
    var item = $( this );
    var _container = container.clone().appendTo( item );
    item.data( "container", _container );
    };
     
    var buildUrl = function() {
    return urlBase currentItem.attr( "id" );
    };
     
    var showItem = function() {
    currentItem = $( this );
    getContent( showContent );
    };
     
    var showItemByIndex = function( idx ) {
    $.proxy( showItem, items.get( idx ) );
    };
     
    var getContent = function( callback ) {
    currentItem.data( "container" ).load( buildUrl(), callback );
    };
     
    var showContent = function() {
    currentItem.data( "container" ).show();
    hideContent();
    };
     
    var hideContent = function() {
    currentItem.siblings().each(function() {
    $( this ).data( "container" ).hide();
    });
    };
     
    items.each( createContainer ).click( showItem );
     
    return {
    showItemByIndex: showItemByIndex
    };
    })();
     
    feature.showItemByIndex( 0 );
    });

    jQuery特点

    对象常量

    贰个对象字面或许是包裹相关的代码最轻便易行的秘技。它不提供属性或方法的其余隐秘的,但它是破除无名氏函数从代码中,聚集的布署选项,并简化重用和重构的渠道特别有效。

    1 2 3 4 五 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 // An object literal var myFeature = { myProperty: "hello",   myMethod: function() { console.log( myFeature.myProperty ); },   init: function( settings ) { myFeature.settings = settings; },   readSettings: function() { console.log( myFeature.settings ); } };   myFeature.myProperty === "hello"; // true   myFeature.myMethod(); // "hello"   myFeature.init({ foo: "bar" });   myFeature.readSettings(); // { foo: "bar" }

    目的方面的文字简直是分配给二个变量的指标。对象具备二个属性和二种格局。全数属性和方式都以明白的,因而你的应用程序的其余部分能够看出该指标的性质和调用方法。尽管有七个init方法,未有何样须求前面包车型客车对象是效益,它被调用。

    咱俩怎么利用此情势jQuery代码?比如说,大家有那个代码写在古板的jQuery风格:

    1 2 3 4 五 6 7 8 9 10 11 12 // Clicking on a list item loads some content using the // list item's ID, and hides content in sibling list items $( document ).ready(function() { $( "#myFeature li" ).append( "<div>" ).click(function() { var item = $( this ); var div = item.find( "div" ); div.load( "foo.php?item=" item.attr( "id" ), function() { div.show(); item.siblings().find( "div" ).hide(); }); }); });

    若是那是大家的应用程序的范围,那样的选取是不佳的。在单方面,假如那是一块越来越大的应用程序中,大家会做的很好,保持那一个效果不相干的意义分别。咱们恐怕还须求活动U安德拉L出代码,并改为二个布局区域。最终,我们大概要提取链接地址,使其更易于为之后修改的功用块。

    1 2 3 4 五 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 三十 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 // Using an object literal for a jQuery feature var myFeature = { init: function( settings ) { myFeature.config = { items: $( "#myFeature li" ), container: $( "<div class='container'></div>" ), urlBase: "/foo.php?item=" };   // Allow overriding the default config $.extend( myFeature.config, settings );   myFeature.setup(); },   setup: function() { myFeature.config.items .each( myFeature.createContainer ) .click( myFeature.showItem ); },   createContainer: function() { var item = $( this ); var container = myFeature.config.container .clone() .appendTo( item ); item.data( "container", container ); },   buildUrl: function() { return myFeature.config.urlBase myFeature.currentItem.attr( "id" ); },   showItem: function() { myFeature.currentItem = $( this ); myFeature.getContent( myFeature.showContent ); },   getContent: function( callback ) { var url = myFeature.buildUrl(); myFeature.currentItem.data( "container" ).load( url, callback ); },   showContent: function() { myFeature.currentItem.data( "container" ).show(); myFeature.hideContent(); },   hideContent: function() { myFeature.currentItem.siblings().each(function() { $( this ).data( "container" ).hide(); }); } };   $( document ).ready( myFeature.init );

    你会注意到的首先件事是,这种做法显著比原来要长 - 再次,如果那是大家的应用程序的范围,使用对象文本很恐怕是矫枉过正。要是那不是大家的应用程序的限制,即便,大家早已获得了几件事情:

    • 我们已经打破大家的效用成一线的方法。在今后,要是大家想改动内容的展现格局,很分明的地方去改动它。在最初的代码中,这一步是更难找到。
    • 咱俩早已排除了利用佚名函数。
    • 小编们早就搬出了代码的关键性布局选项,并把它们在叁在那之中心地方。
    • 小编们早就去掉了链子的制裁,使代码更便于重构,重新混音和重新排列。

    对于重要的作用,对象文本一条长长的代码显著革新$( document ).ready()块,因为他俩让大家寻思大家的功用块。可是,他们不是一大堆不止是独具内部一群函数表明更先进的$( document ).ready()块。

    不容忽视无名函数

    无处不在的约束佚名函数是一种切肤之痛。他们是为难调节和测验,维护,测量检验或录取。相反,使用对象文本来组织和命名您的管理程序和回调。

    1
    2
    3
    4
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    三十
    31
    32
    33
    34
    // BAD
    $( document ).ready(function() {
     
    $( "#magic" ).click(function( event ) {
    $( "#yayeffects" ).slideUp(function() {
    // ...
    });
    });
     
    $( "#happiness" ).load( url " #unicorns", function() {
    // ...
    });
     
    });
     
    // BETTER
    var PI = {
     
    onReady: function() {
    $( "#magic" ).click( PI.candyMtn );
    $( "#happiness" ).load( PI.url " #unicorns", PI.unicornCb );
    },
     
    candyMtn: function( event ) {
    $( "#yayeffects" ).slideUp( PI.slideCb );
    },
     
    slideCb: function() { ... },
     
    unicornCb: function() { ... }
     
    };
     
    $( document ).ready( PI.onReady );

    不容忽视无名氏函数

    无处不在的羁绊无名函数是一种切肤之痛。他们是麻烦调试,维护,测量试验或录取。相反,使用对象文本来协会和命名您的管理程序和回调。

    1
    2
    3
    4
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    三十
    31
    32
    33
    34
    // BAD
    $( document ).ready(function() {
     
    $( "#magic" ).click(function( event ) {
    $( "#yayeffects" ).slideUp(function() {
    // ...
    });
    });
     
    $( "#happiness" ).load( url " #unicorns", function() {
    // ...
    });
     
    });
     
    // BETTER
    var PI = {
     
    onReady: function() {
    $( "#magic" ).click( PI.candyMtn );
    $( "#happiness" ).load( PI.url " #unicorns", PI.unicornCb );
    },
     
    candyMtn: function( event ) {
    $( "#yayeffects" ).slideUp( PI.slideCb );
    },
     
    slideCb: function() { ... },
     
    unicornCb: function() { ... }
     
    };
     
    $( document ).ready( PI.onReady );

    jQuery长于查找、遍历和操作HTML文书档案内的HTML成分。一旦你找到贰个成分,使用jQuery能够很轻便的操作成分的事件管理程序,成分动画以及和别的因素进行AJAX交互。本节将从jQuery函数初叶来索求jQuery的功能。

    模块情势

    模块情势征服一些指标的文字的限制,提供变量和函数的苦衷,同期如若供给的话揭露公共API。

    1 2 3 4 五 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 // The module pattern var feature = (function() {   // Private variables and functions var privateThing = "secret"; var publicThing = "not secret";   var changePrivateThing = function() { privateThing = "super secret"; };   var sayPrivateThing = function() { console.log( privateThing ); changePrivateThing(); };   // Public API return { publicThing: publicThing, sayPrivateThing: sayPrivateThing }; })();   feature.publicThing; // "not secret"   // Logs "secret" and changes the value of privateThing feature.sayPrivateThing();

    在上头的例子中,大家自实践回来的靶子的无名函数。里面包车型客车法力,大家定义了一部分变量。因为变量的函数的其中定义,我们不具备的效能的外界访问它们,除非大家把它们再次回到的对象。那表示函数以外未有代码访谈该privateThing变量或往changePrivateThing功能。不过,sayPrivateThing也可以有空子收获privateThingchangePrivateThing,因为四人都在同一范围定义sayPrivateThing

    这种形式是兵不血刃的,因为你能够从变量名聚集,它能够给您私人的变量和函数同有时候揭破包涵再次回到的靶子的性质和议程的少数的API。

    上面是后面包车型大巴例子的改正版本,彰显大家能够怎么利用模块格局,而唯有揭穿模块的多个公家艺术创造同样的遵从,showItemByIndex()

    1 2 3 4 五 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 三十 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 // Using the module pattern for a jQuery feature $( document ).ready(function() { var feature = (function() { var items = $( "#myFeature li" ); var container = $( "<div class='container'></div>" ); var currentItem = null; var urlBase = "/foo.php?item=";   var createContainer = function() { var item = $( this ); var _container = container.clone().appendTo( item ); item.data( "container", _container ); };   var buildUrl = function() { return urlBase currentItem.attr( "id" ); };   var showItem = function() { currentItem = $( this ); getContent( showContent ); };   var showItemByIndex = function( idx ) { $.proxy( showItem, items.get( idx ) ); };   var getContent = function( callback ) { currentItem.data( "container" ).load( buildUrl(), callback ); };   var showContent = function() { currentItem.data( "container" ).show(); hideContent(); };   var hideContent = function() { currentItem.siblings().each(function() { $( this ).data( "container" ).hide(); }); };   items.each( createContainer ).click( showItem );   return { showItemByIndex: showItemByIndex }; })();   feature.showItemByIndex( 0 ); });

    使用CDN的好处

    有多少个原因,四个CDN能够受益您的网址和商号。

    1.不同域
    的浏览器限制并发连接(文件下载)到单个域的数目。大比很多同意几个活动再三再四,因而第五下载被封堵,直到从前的公文中的三个早已完全恢复。你常常能够看来那些范围的行进源于同三个站点下载八个大文件时。

    CDN文件驻留在不相同的域。实际上,单个CDN允许浏览器的同时下载四个更加的的三个公文。

    2.文书能够先行缓存
    jQuery是在互联网上无处不在。有贰个高可能率有人访谈您网站已经访谈了运用谷歌(Google)CDN的网址。由此,该公文已经被缓存的浏览器和将无需重新下载。

    3.高容积的根基设备,
    你也是有十分大的主机,但自小编敢打赌,它并未有被谷歌(Google),微软或雅虎提供的容积或可扩张性。越来越好的CDN提供更加高的可用性,收缩网络延时,收缩丢包。

    4.布满式数据基本,
    假诺你的机要的Web服务器是依据在胡志明市,从北美洲或澳洲的用户,当她们拜会您的文本必须做出一些跨大陆电子跳。大多的CDN提供一些数据主导,那么些宗旨是更近乎用户,并招致越来越快的下载。

    5.放到版本调整
    ,经常有一点都不小可能率链接到二个CSS文件或JavaScript库的现实版本。假设急需,能够时不常供给“最新”版本。

    6.运用深入分析
    多多商业的CDN提供的文本使用意况的告知,因为她俩一般每字节充电。这一个告诉可以互补自个儿的网址深入分析和在一些意况下,能够提供录制收看和下载多个越来越好的印象。

    7.升高质量和节约花费
    CDN的可分配负载,节省带宽,提升品质并裁减现成的托管开支-平日是无需付费的。

     

     

    使用CDN的好处

    有多少个原因,二个CDN能够收益您的网址和供销合作社。

    1.不同域
    的浏览器限制并发连接(文件下载)到单个域的多寡。大好多同意八个移动总是,因而第五下载被堵塞,直到以前的文件中的二个一度完全恢复生机。你时常能够观望这几个限制的走动力源于同三个站点下载三个大文件时。

    CDN文件驻留在分歧的域。实际上,单个CDN允许浏览器的同不经常间下载四个进一步的四个文件。

    2.文件能够优先缓存
    jQuery是在互连网上无处不在。有四个高概率有人访问您网址已经访谈了应用GoogleCDN的网站。因而,该文件已经被缓存的浏览器和将无需再一次下载。

    3.高容积的基本功设备,
    您也有十分的大的主机,但本身敢打赌,它从不被谷歌(Google),微软或雅虎提供的体积或可扩大性。越来越好的CDN提供越来越高的可用性,裁减网络延时,收缩丢包。

    4.布满式数据主导,
    万一您的主要性的Web服务器是基于在布加勒斯特,从澳洲或亚洲的用户,当他们访谈您的公文必须做出一些跨大陆电子跳。多数的CDN提供一些数据基本,这一个基本是更就好像用户,并导致越来越快的下载。

    5.内置版本调整
    ,通常有不小大概链接到三个CSS文件或JavaScript库的求实版本。即使急需,能够不经常须求“最新”版本。

    6.选用解析
    广大商业贸易的CDN提供的文件使用状态的报告,因为她们一般每字节充电。那个报告能够补充本身的网址深入分析和在有些景况下,能够提供录像看到和下载三个越来越好的印象。

    7.巩固性能和节约开销
    CDN的可分配负载,节省带宽,进步品质并减少现成的托管开支-常常是无需付费的。

     

     

    jQuery函数

    小心无名函数

    无处不在的束缚无名函数是一种切肤之痛。他们是为难调节和测验,维护,测验或录取。相反,使用对象文本来组织和命名您的处理程序和回调。

    1 2 3 4 五 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 三十 31 32 33 34 // BAD $( document ).ready(function() {   $( "#magic" ).click(function( event ) { $( "#yayeffects" ).slideUp(function() { // ... }); });   $( "#happiness" ).load( url " #unicorns", function() { // ... });   });   // BETTER var PI = {   onReady: function() { $( "#magic" ).click( PI.candyMtn ); $( "#happiness" ).load( PI.url " #unicorns", PI.unicornCb ); },   candyMtn: function( event ) { $( "#yayeffects" ).slideUp( PI.slideCb ); },   slideCb: function() { ... },   unicornCb: function() { ... }   };   $( document ).ready( PI.onReady );

    jQuery函数是目的,你能够透过那么些目的来访谈jQuery的效应。开拓职员在开始选拔jQuery时会为此而倍感思疑。感觉狐疑也一律是因为函数(jQuery)的别称$符号(因为这么能够在调用jQuery作用时方可大大方方削减字符输入)。更令人狐疑的是$机缘能够承受任性等级次序的参数,而遵照此推论出你筹算调用的功用。上面是一些jQuery函数代码的高人一等使用方法:

    使用CDN的好处

    有多少个原因,七个CDN能够收益您的网站和集团。

    1.不同域
    的浏览器限制并发连接(文件下载)到单个域的多寡。大繁多同意四个移动接二连三,由此第五下载被封堵,直到从前的公文中的一个曾经完全复苏。你时不常能够见到那个界定的行动力源于同几个站点下载多少个大文件时。

    CDN文件驻留在不一样的域。实际上,单个CDN允许浏览器的同期下载三个更为的八个文件。

    2.文本能够先行缓存
    jQuery是在网络上无处不在。有一个高可能率有人访谈您网址已经访问了应用谷歌(Google)CDN的网址。因此,该文件已经被缓存的浏览器和将无需另行下载。

    3.高容积的基本功设备,
    您也可以有非常大的主机,但小编敢打赌,它并未有被Google,微软或雅虎提供的体量或可扩大性。越来越好的CDN提供更加高的可用性,收缩网络延时,收缩丢包。

    4.分布式数据基本,
    假若您的着重的Web服务器是依附在罗马,从欧洲或欧洲的用户,当他俩做客您的文书必须做出一些跨大陆电子跳。好些个的CDN提供一些数据核心,这么些骨干是更类似用户,并促成更加快的下载。

    5.平放版本调节
    ,常常有望链接到一个CSS文件或JavaScript库的切实版本。若是急需,能够平常须求“最新”版本。

    6.运用深入分析
    广大生意的CDN提供的文书使用情状的告知,因为他俩一般每字节充电。这几个报告可以互补自身的网址解析和在少数景况下,能够提供视频收看和下载一个更加好的纪念。

    7.增高质量和节省资金
    CDN的可分配负载,节省带宽,升高品质并裁减现存的托管成本-平常是免费的。

     

     

    关于jQuery的 入门使用jQuery能够很轻巧或享有挑衅性的,这取决于你怎么着行使JavaScript,HTML,CSS进行开...

    $(function () {
      $(“#album-list img”).mouseover(function () {
        $(this).animate({ height: ‘ =25’, width: ‘ =25’ })
          .animate({ height: ‘-=25’, width: ‘-=25’ });
      });
    });
    

    代码的首先行调用了jQuery函数($),传递给佚名JavaScript函数一个参数。

    $(function () {
      $(“#album-list img”).mouseover(function () {
        $(this).animate({ height: ‘ =25’, width: ‘ =25’ })
          .animate({ height: ‘-=25’, width: ‘-=25’ });
      });
    });
    

    jQuery会假定你提供了八个情势,并在浏览器从服务器端加载成功HTML(DOM)音信并建设构造完结文书档案对象模型时及时进行。因为在那一年,你就能够安全而完美的实施DOM有关的本子了。

    第二行代码向jQuery函数字传送递了字符串参数“#album-list img”:

    $(function () {
      $(“#album-list img”).mouseover(function () {
        $(this).animate({ height: ‘ =25’, width: ‘ =25’ })
          .animate({ height: ‘-=25’, width: ‘-=25’ });
      });
    });
    

    jQuery将会把这几个字符串调用解释为选取器。选拔器会告诉jQuery应该在DOM中寻觅三个哪些的要素。你能够获得那些成分的属性值,class的值,相对地点,以及别的音讯。第二行的选用器告诉jQuery在那些成分的界定内寻找全部ID值为“album-list”的img成分。

    当选取器实行到位时,它会回去相配到的一个或七个元素的靶子。你能够因而jQuery的片段额外的艺术来调用操作包装的成团中颇具的要素。比如,可以为持有通过选拔器相称到的图片增加鼠标悬停事件处理程序。

    jQuery利用很好的施用了JavaScript的函数编制程序的力量。你会发觉能够将团结创办的函数作为参数字传送递给jQuery的艺术。比如,定义mouseover方法,假如不与onmouseover事件相关联,无论怎样浏览器都不会明白该怎么去接触那一个法子。为了在事变触发时触发,你必要为事件传递管理的函数代码:

    $(function () {
      $(“#album-list img”).mouseover(function () {
        $(this).animate({ height: ‘ =25’, width: ‘ =25’ })
          .animate({ height: ‘-=25’, width: ‘-=25’ });
      });
    });
    

    前面包车型地铁事例中,当触发成分的mouseover事件时会推行animates方法。而出发当前卡通的这一个因素被援用为this(出发事件的成分)关键字。请留意,代码是通过向jQuery方法中传递this关键字($(this))获取的那些元素。jQuery的参数视为这些因素的援用然后经过jQuery方法开始展览打包并重返这几个因素。

    借使jQuery重返了打包好的因素,你可以像下面同样是利用与animate类似的格局开始展览调控那个成分。在示范代码中,使图片的拉伸(宽和高都扩张25像素),然后缩短一些(使图片宽和高各缩减25像素)。

    实践这段代码时,当用户将鼠标移动到图片上时,他们拜望到个神秘的提示成效,图片先放大了接下来又余烬复起了,这种是应用程序必需要选取的啊?不!不过轻便的职能以及鲜亮的面相,你的用户会欣赏的。

    经过本章的源委,你会看到更加多更为实际的功用特色。首先,让我们密切看看您所急需利用到的jQuery功效。

    jQuery选择器

    选料器会依照你传入jQuery函数的字符串作为标准在DOM中寻找可相称的因素。在前一部分,选择器使用“#album-list img”来搜索图片标志。你也足以行使层叠样式表(CSS)的艺术来查找成分。jQuery选用器语法派生自CSS 3.0采取器。表8-第11中学列项支出了全部jQuery选用器协理的代码格局。

    示例

    含意

    ${"header"}

    查找id为"header"的元素。

    ${".editor-label"}

    查找所有类名为“.editor-label”的元素。

    ${"div"}

    查找所有的<div>元素。

    ${"#header div"}

    查找id为“header”的<div>元素。

    ${"#header >div"}

    查找id为“header”节点的所有<div>子元素。

    ${"a:even"}

    查找查找所有奇偶的锚点元素。

    表中的最后一行展示了jQuery像CSS同样帮忙伪类。使用这么些伪类能够接纳到偶数或奇数的成分,访谈链接你可以查阅到三个总体的CSS采用器列表:

    jQuery事件

    jQuery的另一个不折不挠正是为订阅DOM中的事件提供API。即便您也足以选拔字符串在通用绑定中钦命使用事件的名称,jQuery还是提供了有的科学普及的时光,如click、blur和submit等事件专项使用方法。如前所示,你可认为jQuery传递个函数告诉它事件爆发时该做什么样。函数能够是无名的,就像你在“jQuery函数”一节中所看到的例证,只怕你能够钦赐函数的名称来作为事件管理程序,比如上边包车型客车代码:

    $(“#album-list img”).mouseover(function () {
      animateElement($(this));
    });
    
    function animateElement(element) {
      element.animate({ height: ‘ =25’, width: ‘ =25’ })
        .animate({ height: ‘-=25’, width: ‘-=25’ });
    }
    

    当你要选拔DOM成分或举行事件管理时,jQuery能够非常轻巧的操作页面上的因素。你可以读取或安装属性值,增添或删除成分的CSS类以及另外越多操作。上面包车型大巴代码是当用户将鼠标移动到链接成分上时,增添或删除CSS的高亮类。当用户在页面上移步鼠标到锚点标志时会有例外的显示(倘令你曾经改变了高亮样式)。

    $(“a”).mouseover(function () {
      $(this).addClass(“highlight”);
    }).mouseout(function () {
      $(this).removeClass(“highlight”);
    });
    

    有关前面包车型地铁代码有局部有意思的作业:

    装有jQuery方法都会调换二个包裹集,如悬停的法子,也会回到同样的jQuery的包装集。那象征你能够承继调用jQuery方法而无需再一次选拔那些因素。我们将以此叫做方法链接。

    在jQuery中大致你能够观望有着的大规模操作。设置mouseover和mouseout的国有操作方法,你能够在其间切换差别的样式类。你可以应用部分jQuery的火速情势和结尾的代码片段将其重写为如下方式:

    $(“a”).hover(function () {
      $(this).toggleClass(“highlight”);
    });
    

    万般有技巧的三行代码啊——那便是jQuery的优质之处。

    jQuery和AJAX

    jQuery能够将您需求的富有剧情通过异步诉求的点子发送回你的Web服务器。你能够发起POST央浼、GET哀告或jQuery必要在成就时(或发生错误时)公告你。你能够应用jQuery发送和接收XML数据(AJAX中X代表XML),但是在本章中,你会看到您会看到HTML片段数据,文本或JavaScript Object Notation(JSON)等格式。jQuery使得AJAX更为轻松。

    其实,jQuery更换了Web开垦职员编写脚本代码的点子,让相当多专门的学问变的进一步轻易。

    不唐突的JavaScript

    在jQuery还未有出现的时候,Web流行将JavaScript代码和HTML放在同二个文书中。以致还把JavaScript代码当成是HTML成分的性质嵌入在这之中。就如同下边包车型客车onclick管理程序:

    <div onclick=”JavaScript:alert(‘click’);”>Testing, testing</div>
    

    www.68399.com,莫不你在这两天里面也以往在存放标志中写过JavaScript,因为当时也再未有怎么更轻易的方法能够捕获点击事件。嵌入JavaScript代码固然能够干活,但是代码会变得非常混乱。jQuery的面世转移了这种景色,因为您能够选择其他一种越发理想的主意来找到成分和破获点击事件。今后您能够从HTML的习性中移除JavaScript了。事实上,你完全能够将JavaScript代码从HTML中移除出去。

    不唐突的JavaScript的效应是保持JavaScript代码与HTML标志分离。将具有你要求动用的剧本代码打包到.js文件中。假诺您查看源代码,将不拜谒到别的JavaScript代码。就算是HTML渲染代码视图,你也不会看出别的JavaScript在中间。而以此页面独一是用剧本的旗号,你拜望到三个或三个<script>标志援用了JavaScript文件。

    你可能相当的慢就能够意识不唐突JavaScript的魔力,因为它一样服从和推崇MVC的设计方式。保持突显标识使其与JavaScript所主宰的作为相分离。不唐突JavaScript还应该有其余的益处。JavaScript代码存款和储蓄在单身的文书中,浏览器只须要下载一次就能够缓存在本地,这样也造福网址的性质进步。

    不得罪,JavaScript允许你的网址使用“稳步扩充”的计划来更新内容。而慢慢充实则是提供内容的一种关键措施。唯有当您的设备或浏览器能够帮忙脚本以及样式表的作用,那时技艺够构建特别先进的原委,举个例子动画。维基百科对于日渐加多的政策有一个非凡好的概述:

    ASP.NET MVC3 必要不唐突的JavaScript。并不是在做类似于客户端验证的功用时在视图中写JavaScript代码,或是框架将代码附着到HTML的性质中。使用jQuery框架能够很有利的找到和解说元数据,然后利用外界关系的脚本文件为成分附加行为。多谢不唐突的JavaScript提供的AJAX效用使ASP.NET MVC能够支撑“稳步巩固”。假设用户的浏览器并不帮衬脚本,您的网址也照样会健康事业(不过可能她不会利用到“好用”的机能,举例客户端验证)。

    接下去让大家商量一下如jQuery在MVC应用程序中一经为动作加上不唐突的JavaScript。

    使用jQuery

    在Visual Studio中利用ASP.NET MVC模板创制多少个新类型时,项目模板会为您创设你所须求的jQuery。每一个新品类中都会蕴藏二个Scripts文件夹来放置.js文件,如图8-1所示:

    www.68399.com 1

    jQuery库的为主文件被命名叫jquery-<版本>.js,在图纸中当前jQuery的本子是1.4.4。当你张开那么些文件时,你会意识那些文件中的代码可读,并且还含有相关的代码注释。

    瞩目,这里还含有贰个jquery-<版本>.min.js文件。那么些是三个调整和收缩版本的JavaScript,个中“.min”是用来区分未压缩版本的(平时压缩版本会小于暗许版本的百分之五十)。它不带有其余不要求的空格字符,未有注释,局地变量名称也被浓缩为叁个字符长度。倘使您展开三个削减过的文件,你会意识一大堆比可读的JavaScript代码。你能够将减弱过的JavaScript给你以为是大方的JavaScript技士。问她,他以为那几个代码能做什么样?

    本文由68399皇家赌场发布于服务器租用,转载请注明出处:JQuery的开拓与应用体验

    关键词: 68399皇家赌场 Web前端 ASP.NET MVC JQuery as

上一篇:粗略的旋转CD制作,轻便旋转CD制作

下一篇:没有了