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实现可编辑表格并生成json结果(实例代码)
Jul 19 jQuery
JavaScript之事件委托实例(附原生js和jQuery代码)
Jul 22 jQuery
jQuery EasyUI的TreeGrid查询功能实现方法
Aug 08 jQuery
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
Aug 09 jQuery
jQuery实现base64前台加密解密功能详解
Aug 29 jQuery
zTree jQuery 树插件的使用(实例讲解)
Sep 25 jQuery
jquery.onoff实现简单的开关按钮功能(推荐)
May 24 jQuery
jQuery实现的监听导航滚动置顶状态功能示例
Jul 23 jQuery
jquery实现选项卡切换代码实例
May 14 jQuery
如何使用Jquery动态生成二级选项列表
Feb 06 jQuery
jquery实现上传文件进度条
Mar 26 jQuery
js、jquery实现列表模糊搜索功能过程解析
Mar 27 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
锁定年轻人的双倍活力 星巴克推出星倍醇即饮浓咖啡
2021/03/03 咖啡文化
php 3行代码的分页算法(求起始页和结束页)
2009/10/21 PHP
php不写闭合标签的好处
2014/03/04 PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
2017/03/14 PHP
Laravel框架基于ajax和layer.js实现无刷新删除功能示例
2019/01/17 PHP
JS小框架 fly javascript framework
2009/11/26 Javascript
jquery select下拉框操作的一些说明
2010/04/02 Javascript
jquery 学习笔记一
2010/04/07 Javascript
用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
2010/07/17 Javascript
JQuery对表单元素的基本操作使用总结
2014/07/18 Javascript
纯javascript实现简单下拉刷新功能
2015/03/13 Javascript
Bootstrap3使用typeahead插件实现自动补全功能
2016/07/07 Javascript
javascript弹出带文字信息的提示框效果
2016/07/19 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
一个可复用的vue分页组件
2017/05/15 Javascript
vue组件详解之使用slot分发内容
2018/04/09 Javascript
VuePress 快速踩坑小结
2019/02/14 Javascript
自定义Vue中的v-module双向绑定的实现
2019/04/17 Javascript
[02:46]2014DOTA2国际邀请赛 选手为你解读比赛MVP充满梦想
2014/07/09 DOTA
flask中使用SQLAlchemy进行辅助开发的代码
2013/02/10 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
解决PyCharm import torch包失败的问题
2018/10/13 Python
python 堆和优先队列的使用详解
2019/03/05 Python
python 使用pdfminer3k 读取PDF文档的例子
2019/08/27 Python
css3弹性盒模型(Flexbox)详细介绍
2014/10/08 HTML / CSS
全球性的在线商店:Vogca
2019/05/10 全球购物
自考毕业生自我鉴定
2013/11/04 职场文书
司机的工作范围及职责
2013/11/13 职场文书
《蒙娜丽莎之约》教学反思
2014/02/27 职场文书
学雷锋演讲稿
2014/03/04 职场文书
2014年百日安全生产活动总结
2014/05/04 职场文书
2014年光棍节活动策划方案(创意集锦)
2014/09/29 职场文书
财政局个人总结
2015/03/04 职场文书
学校运动会通讯稿
2015/07/18 职场文书
小学教师师德培训心得体会
2016/01/09 职场文书
如何给HttpServletRequest增加消息头
2021/06/30 Java/Android