>  기사  >  웹 프론트엔드  >  jQuery+ajax는 부분 새로 고침을 구현합니다.

jQuery+ajax는 부분 새로 고침을 구현합니다.

巴扎黑
巴扎黑원래의
2017-06-26 14:34:001392검색

프로젝트에서는 프론트 엔드 및 백엔드 상호 작용 등과 같은 부분 새로 고침을 달성하기 위해 Ajax가 자주 사용됩니다. 여기서는 주로 ajax에서 .load()를 사용하는 두 가지 부분 새로 고침 방법을 공유합니다.

첫 번째 유형:

특정 페이지의 헤더, 탐색, 하단이 동일한 경우 탐색 링크를 클릭하면 여러 페이지 간에 전환할 수 있습니다. 이때 원하는 효과는 링크를 클릭한 후입니다. 전환되고 나머지는 다시 로드되지 않습니다. 코드를 올려보세요.

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에서 태그를 만드는 방법은 다시 설명하지 않습니다.

두 번째 방법:

웹 페이지 왼쪽에 목록이 있으면 목록을 클릭하여 오른쪽에 콘텐츠를 전환하세요. 오른쪽에 콘텐츠가 너무 많으면 적합하지 않습니다. 탭의 경우 .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 페이지도 목록에 해당하므로 여기서는 다시 설명하지 않습니다.

요약:

위 두 가지 방법의 원리는 동일합니다. .load()를 통해 페이지의 특정 부분을 다시 로드해야 합니다. Ajax는 서버 환경에서 실행되어야 합니다. 비교해 보면 첫 번째는 상대적으로 간단하고 두 번째는 조금 더 복잡하다는 것을 알 수 있습니다. 하지만 개인적으로 첫 번째는 .load() 가 어떻게 이루어지는지 예제를 제공하기 위한 것입니다. 실제로 사용자 경험에 있어서 중요한 역할을 하는데, 예를 들어 클릭 시 주소 표시줄의 주소가 변경되지 않아 앞으로 또는 뒤로가 무효화되는 등의 측면이 있습니다. 두 번째 방법은 더 유연합니다. 데이터를 저장하기 위해 data-*의 사용자 정의 속성을 사용합니다. 클릭하면 주소가 변경되었으므로 페이지를 새로 고치는 대신 현재 페이지 내용이 계속 유지됩니다. 첫 번째.


위 내용은 jQuery+ajax는 부분 새로 고침을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.