繼上一篇 使用jquery的load方法設(shè)計動態(tài)加載,并解決被加載頁面JavaScript失效問題 解決了后臺業(yè)務(wù)系統(tǒng)的部分動態(tài)加載問題,然而該框架離正常的用戶體驗還存在一些問題,如:瀏覽器的前進(jìn)、后退、刷新等問題。有博友也遇到了同樣的問題,接下來就針對瀏覽器的前進(jìn)、后退、刷新進(jìn)行用戶體驗優(yōu)化。
在解決上述問題時也進(jìn)行了各種search,但是大部分都是自己實現(xiàn)的插件,而且插件年久失修,對于新的jquery支持不佳。也有使用h5新加的history方法來實現(xiàn)的,由于HTML5的廣泛使用,絕大部分主流瀏覽器已經(jīng)支持h5,若是你還是抓著IE6/7/8不放手的忠實粉絲,請略過,本文就是使用h5的history方法來實現(xiàn)的。
而且在上一篇的基礎(chǔ)上,使用jquery的插件的寫法略微封裝了一下,load的原理已經(jīng)在上一篇介紹,這里不再復(fù)贅,這里對h5的history API介紹一下:
history.pushState(data, title [, url]):往歷史記錄堆棧頂部添加一條記錄;data會在onpopstate事件觸發(fā)時作為參數(shù)傳遞過去;title為頁面標(biāo)題,當(dāng)前所有瀏覽器都會忽略此參數(shù);url為頁面地址,可選,缺省為當(dāng)前頁地址。
簡單封裝的插件:
1 $.extend({ 2 /** 3 * 使用jquery的load方法加載頁面, 4 * 根據(jù)url地址加載該頁面中的id為content的內(nèi)容 到 本頁面的ID為content的位置 5 * url 鏈接URL 6 * data 鏈接請求參數(shù) 7 */ 8 loadPage: function(url, data) { 9 $.ajaxSetup({cache: false });10 $("#content").load(url+ " #content ", data, function(result){11 //