jQuery load 局部刷新

用法

運行環境

jQuery的load()方法跟jQuery AJAX同樣都須要用到服務器端來支持,因此你會發現若是你只是寫了靜態頁面並直接雙擊運行,瀏覽器會給你一個XMLHttpRequest cannot load的錯誤,你須要把代碼放在服務器上才能運行。jquery

深刻使用

若是單單是使用load()方法,你就會發現,在ajax請求中,不能更新地址欄,地址欄上的「前進」和「後退」按鈕就失效了,帶來了另一種糟糕的用戶體驗。ajax


解決方案有三種,分別是(詳情使用請移步:Ajax保留瀏覽器歷史的解決方案):瀏覽器

  • 使用window.Onhashchange事件;服務器

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

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

使用方案

因爲我須要兼容ie6以上的瀏覽器,加上jQuery.History.js再也不維護,因此我選擇第三種方案來解決以上問題。期間我遇到了如下問題:code

  • 在jquery 1.9以上版本中,控制檯會提示msie找不到的問題,緣由是browser屬性已經被移除orm


解決方法:htm

  • 官方建議使用 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;}})();
相關文章
相關標籤/搜索