jQuery+ajax实现局部刷新的两种方法


Posted in jQuery onJune 08, 2017

在项目中,经常会用到ajax,比如实现局部刷新,比如需要前后端交互等,这里呢分享局部刷新的两种方法,主要用的是ajax里面的.load()。

第一种:

当某几个页面都有相同的头部、导航、底部的时候,点击导航链接可以在几个页面中切换,此时想要的效果是点击链接后只切换内容部分,其他不再重新加载。上代码。

jq-load.html:

<!DOCTYPE html>
<html>
 <head>
  <title>ajax局部刷新</title>
 </head>
 <body>
  <header>
   <nav>
    <a href="jq-load.html" rel="external nofollow" class="current">首页</a>
    <a href="jq-load2.html" rel="external nofollow" >新闻资讯</a>
    <a href="jq-load3.html" rel="external nofollow" >用户中心</a>
   </nav>
  </header>
  <section id="content">
   <div id="container">
     首页的内容
   </div>
  </section>
  <script src="js/jquery-1.11.0.min.js"></script>
  <script src="js/jq-load.js"></script>
 </body>
</html>

注:jq-load2.html、jq-load3.html与jq-load.html代码基本一致,只在#container的div里展示的内容不一样。

jq-load.js:

$('nav a').on('click', function(e) {         
 e.preventDefault(); // 阻止链接跳转
 var url = this.href; // 保存点击的地址

 $('nav a.current').removeClass('current');  
 $(this).addClass('current');           

 $('#container').remove();             
 $('#content').load(url + ' #container').fadeIn('slow'); // 加载新内容,url地址与该地址下的选择器之间要有空格,表示该url下的#container
});

注:此种方法用到了一些html5里面的新标记,在js中创建它们不再赘述。

第二种:

如果网页的左侧有一个列表,点击列表使右侧的内容进行切换,如果右侧的内容过多,不适合做选项卡,这时候用.load()局部刷新最好不过了。上代码。

user.html:

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>个人中心</title>
    <meta charset="utf-8">
    <script src="js/jquery-1.11.0.min.js"></script>
    <script src="js/user.js"></script>
  </head>
  <body>
    <div class="userWrap">
      <ul class="userMenu">
        <li class="current" data-id="center">用户中心</li>
        <li data-id="account">账户信息</li>
        <li data-id="trade">交易记录</li>
        <li data-id="info">消息中心</li>
      </ul>
      <div id="content"></div>
    </div>
  </body>
</html>

user.js:

$(function(){
  $(".userMenu").on("click", "li", function(){
    var sId = $(this).data("id"); //获取data-id的值
    window.location.hash = sId; //设置锚点
    loadInner(sId);
  });
  function loadInner(sId){
    var sId = window.location.hash;
    var pathn, i;
    switch(sId){
      case "#center": pathn = "user_center.html"; i = 0; break;


 case "#account": pathn = "user_account.html"; i = 1; break;
      case "#trade": pathn = "user_trade.html"; i = 2; break;
      case "#info": pathn = "user_info.html"; i = 3; break;



 default: pathn = "user_center.html"; i = 0; break;
    }
    $("#content").load(pathn); //加载相对应的内容
    $(".userMenu li").eq(i).addClass("current").siblings().removeClass("current"); //当前列表高亮
  }
  var sId = window.location.hash;
  loadInner(sId);
});

user_center.html:

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

注:其他user_xxx.html的页面也是列表相对应的内容,此处不再赘述。

总结:

以上两种方法原理是一样的,通过.load()重新加载页面中的某一部分,需注意,ajax需要在服务器环境下运行。通过对比,可发现第一种比较简单,第二种稍复杂些,不过个人推荐第二种,第一种主要是举个例子,看.load()是怎么来用的,其实它在用户体验方面稍逊一筹,比如点击的时候地址栏里地址不变,使前进、后退失效,这个可以到后面再实现。而第二种的话运用比较灵活,巧妙的借助data-*的自定义属性来存储数据,点击的时候修改锚点,因为地址有变,所以刷新的时候仍然会保持当前的页面内容而不是切换到第一个。

以上所述是小编给大家介绍的jQuery+ajax实现局部刷新的两种方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

jQuery 相关文章推荐
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
Mar 25 jQuery
浅谈jQuery框架Ajax常用选项
Jul 08 jQuery
jQuery EasyUI开发技巧总结
Sep 26 jQuery
基于jquery.page.js实现分页效果
Jan 01 jQuery
jquery 给动态生成的标签绑定事件的几种方法总结
Feb 24 jQuery
jQuery实现表单动态添加数据并提交的方法
Jul 19 jQuery
jQuery md5加密插件jQuery.md5.js用法示例
Aug 24 jQuery
jQuery实现为动态添加的元素绑定事件实例分析
Sep 07 jQuery
jQuery实现的五星点评功能【案例】
Feb 18 jQuery
jQuery实现简易聊天框
Feb 08 jQuery
基于JQuery实现页面定时弹出广告
May 08 jQuery
jquery实现抽奖功能
Oct 22 jQuery
jQuery 添加样式属性的优先级别方法(推荐)
Jun 08 #jQuery
jquery dataTable 后台加载数据并分页实例代码
Jun 07 #jQuery
jQuery用户头像裁剪插件cropbox.js使用详解
Jun 07 #jQuery
JQueryMiniUI按照时间进行查询的实现方法
Jun 07 #jQuery
jquery仿京东商品放大浏览页面
Jun 06 #jQuery
jquery实现图片放大点击切换
Jun 06 #jQuery
jquery请求servlet实现ajax异步请求的示例
Jun 03 #jQuery
You might like
PHP中PDO的错误处理
2011/09/04 PHP
PHP使用ob_start生成html页面的方法
2014/11/07 PHP
PHP二维数组去重算法
2016/12/17 PHP
javascript实现简单的html5视频播放器
2015/05/06 Javascript
javascript常用方法总结
2015/05/14 Javascript
jQuery实现为控件添加水印文字效果(附源码)
2015/12/02 Javascript
浅析JavaScript中的array数组类型系统
2016/07/18 Javascript
Angular2  NgModule 模块详解
2016/10/19 Javascript
简单实现Bootstrap标签页
2020/08/09 Javascript
JS基于面向对象实现的多个倒计时器功能示例
2017/02/28 Javascript
浅谈Express异步进化史
2017/09/09 Javascript
微信小程序实现image组件图片自适应宽度比例显示的方法
2018/01/16 Javascript
JS实现左边列表移到到右边列表功能
2018/03/28 Javascript
react项目如何使用iconfont的方法步骤
2019/03/13 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
2019/06/10 jQuery
[01:57]2016完美“圣”典风云人物:国士无双专访
2016/12/04 DOTA
python通过正则查找微博@(at)用户的方法
2015/03/13 Python
python调用Delphi写的Dll代码示例
2017/12/05 Python
python中的闭包函数
2018/02/09 Python
django中静态文件配置static的方法
2018/05/20 Python
Django中的ajax请求
2018/10/19 Python
python利用百度AI实现文字识别功能
2018/11/27 Python
Tensorflow分类器项目自定义数据读入的实现
2019/02/05 Python
Python math库 ln(x)运算的实现及原理
2019/07/17 Python
python3中eval函数用法使用简介
2019/08/02 Python
python并发编程多进程 模拟抢票实现过程
2019/08/20 Python
解决pytorch 的state_dict()拷贝问题
2021/03/03 Python
美国儿童珠宝在线零售商:Loveivy
2019/05/22 全球购物
英语专业毕业生求职简历的自我评价
2013/10/24 职场文书
工作证明格式及范本
2014/09/12 职场文书
工作作风整顿个人剖析材料
2014/10/11 职场文书
2014年电信员工工作总结
2014/12/19 职场文书
沂蒙六姐妹观后感
2015/06/08 职场文书
返乡农民工证明
2015/06/24 职场文书
会议室管理制度范本
2015/08/06 职场文书
2016年妇联“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书