码迷,mamicode.com
首页 > Web开发 > 详细

jQuery load 局部刷新

时间:2015-11-07 20:38:28      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

用法

运行环境

jQuery的load()方法跟jQuery AJAX一样都需要用到服务器端来支持,所以你会发现如果你只是写了静态页面并直接双击运行,浏览器会给你一个XMLHttpRequest cannot load的错误,你需要把代码放在服务器上才能运行。

深入使用

如果单单是使用load()方法,你就会发现,在ajax请求中,不能更新地址栏,地址栏上的“前进”和“后退”按钮就失效了,带来了另外一种糟糕的用户体验。


解决方案有三种,分别是(详情使用请移步:Ajax保留浏览器历史的解决方案):

  • 使用window.Onhashchange事件;

  • 使用jQuery.History.js第三方插件;

  • 使用jquery.ba-hashchange.js第三方插件。

使用方案

由于我需要兼容ie6以上的浏览器,加上jQuery.History.js不再维护,所以我选择第三种方案来解决以上问题。期间我遇到了以下问题:

  • 在jquery 1.9以上版本中,控制台会提示msie找不到的问题,原因是browser属性已经被移除


解决方法:

  • 官方建议使用 Modernizr 库

  • 在引入 jquery 和 jquery.ba-hashchange.js 代码期间引入以下js代码

jQuery.browser={};(function(){jQuery.browser.msie=false; jQuery.browser.version=0;if(navigator.userAgent.match(/MSIE ([0-9]+)./)){ jQuery.browser.msie=true;jQuery.browser.version=RegExp.$1;}})();




jQuery load 局部刷新

标签:

原文地址:http://my.oschina.net/cobish/blog/527499

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!