ホームページ  >  記事  >  ウェブフロントエンド  >  jQuery+ajaxは部分的なリフレッシュを実装します

jQuery+ajaxは部分的なリフレッシュを実装します

巴扎黑
巴扎黑オリジナル
2017-06-26 14:34:001452ブラウズ

プロジェクトでは、フロントエンドとバックエンドの相互作用などの部分更新を実現するために、ajax がよく使用されます。ここでは、主に ajax の .load() を使用した、部分更新の 2 つの方法を共有します。

最初のタイプ:

特定のページに同じヘッダー、ナビゲーション、下部がある場合、ナビゲーション リンクをクリックすると、複数のページを切り替えることができます。現時点で望ましい効果は、リンクをクリックした後です。コンテンツ部分のみが表示されます。切り替えられ、他のものはリロードされません。コードをアップします。

jq-load.html:

 1 <!DOCTYPE html> 2 <html> 3   <head> 4     <title>ajax局部刷新</title> 5   </head> 6   <body> 7  8     <header> 9       <nav>10         <a href="jq-load.html" class="current">首页</a>11         <a href="jq-load2.html">新闻资讯</a>12         <a href="jq-load3.html">用户中心</a>13       </nav>14     </header>15 16     <section id="content">17       <div id="container">18           首页的内容19       </div>20     </section>21 22     <script src="js/jquery-1.11.0.min.js?1.1.11"></script>23     <script src="js/jq-load.js?1.1.11"></script>24 25   </body>26 </html>

注: jq-load2.html、jq-load3.html、および jq-load.html コードは基本的に同じですが、 # の div に表示される内容のみが異なります。容器が違いますが同じです。

jq-load.js:

 1 $('nav a').on('click', function(e) {                 
 2   e.preventDefault();  // 阻止链接跳转 3   var url = this.href;  // 保存点击的地址 4  5   $('nav a.current').removeClass('current');    
 6   $(this).addClass('current');                       
 7  8   $('#container').remove();                          
 9   $('#content').load(url + ' #container').fadeIn('slow'); // 加载新内容,url地址与该地址下的选择器之间要有空格,表示该url下的#container10 });

注: このメソッドは html5 でいくつかの新しいタグを使用します。js での作成については再度説明しません。

2番目の方法:

ウェブページの左側にリストがある場合は、リストをクリックして右側のコンテンツを切り替えます。右側にコンテンツが多すぎる場合は、適切ではありません。タブの場合は、 .load( ) の部分更新を使用するのが最適です。コードをアップします。

user.html:

 1 <!DOCTYPE html> 2 <html lang="en"> 3     <head> 4         <title>个人中心</title> 5         <meta charset="utf-8"> 6         <script src="js/jquery-1.11.0.min.js?1.1.11"></script> 7         <script src="js/user.js?1.1.11"></script> 8     </head> 9     <body>10 11         <div class="userWrap">17             <ul class="userMenu">18                 <li class="current" data-id="center">用户中心</li>19                 <li data-id="account">账户信息</li>20                 <li data-id="trade">交易记录</li>21                 <li data-id="info">消息中心</li>22             </ul>23             <div id="content"></div>25         </div>26         27     </body>28 </html>

user.js:

$(".userMenu").on("click", "li",  sId = $().data("id");  window.location.hash = sId;   sId = "#center": pathn = "user_center.html"; i = 0;  "#account": pathn = "user_account.html"; i = 1;  "#trade": pathn = "user_trade.html"; i = 2;  "#info": pathn = "user_info.html"; i = 3; : pathn = "user_center.html"; i = 0; "#content").load(pathn); $(".userMenu li").eq(i).addClass("current").siblings().removeClass("current");  sId =

user_center.html:

<div>用户中心
    ……</div>

注: 他の user_xxx.html ページもリストに対応しているため、ここでは再度説明しません。

概要:

上記の 2 つのメソッドの原理は同じです。.load() を通じてページの特定の部分をリロードします。ajax はサーバー環境で実行する必要があることに注意してください。比較すると、1 つ目は比較的単純で、2 つ目は少し複雑であることがわかります。ただし、個人的には 2 つ目は、主に .load() がどのようなものかを理解するための例をお勧めします。実際、これはユーザーエクスペリエンスにおいて重要な役割を果たします。たとえば、クリックしてもアドレスバーのアドレスが変化せず、後から実装することができます。 2 番目の方法はより柔軟で、data-* のカスタム属性を巧みに使用してデータを保存します。アドレスが変更されるため、更新時に現在のページのコンテンツが維持されます。初め。


以上がjQuery+ajaxは部分的なリフレッシュを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。