欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jQuery load 局部刷新

程序员文章站 2022-06-17 11:54:19
...

用法

运行环境

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