jQuery load 局部刷新

用法

运行环境

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;}})();




转载于:https://my.oschina.net/cobish/blog/527499

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值