小程序教程

ASP.NET Ajax – History Support 續

字号+ 作者:H5之家 来源:H5之家 2016-12-14 17:02 我要评论( )

ASP.NET Ajax – History Support 續 今天正好遇到一個已經快結束的項目需要添加Ajax History功能 項目並未使用微軟的Ajax,使用的是JQuery的Ajax,頁面加載完成後發出Ajax請求初始化。對於這種情況的改進方式如下: pageLoad $(document).ready(function ()

ASP.NET Ajax – History Support 續

今天正好遇到一個已經快結束的項目需要添加Ajax History功能
項目並未使用微軟的Ajax,使用的是JQuery的Ajax,頁面加載完成後發出Ajax請求初始化。對於這種情況的改進方式如下:

pageLoad

$(document).ready(function () { Sys.Application.add_navigate(onNavigate); Sys.Application.add_load(onLoad); });



onNavigate

function onNavigate(sender, e) { //判斷是否為使用者觸發 //debugger; if (window.userNavigated == undefined || userNavigated) { restorePage(e.get_state()); } }



onLoad處理首次進入頁面或者回退前進到首次進入頁面的數據加載

function loadPage() { //your code }



addHistoryPoint不變

function addHistoryPoint() { var pageState = { "foo": "foo", "bar": "bar"}; var historyPointName = "blah"; window.userNavigated = false; Sys.Application.addHistoryPoint(pageState, historyPointName); window.userNavigated = true; }



restorePage修改

function restorePage(pageState) { //debugger; if (!$.isEmptyObject(pageState)) { // restore methord } else { onLoad(); } Sys.Application.remove_load(loadPage); }



以上可以頁面內自由導航,也可以跨頁面導航回來。

這種改變後的方式,主要在於處理使用費微軟Ajax框架但還是使用ScriptManager管理History的情況。以前的方法缺點在於無法導航回到首次進入頁面的狀態。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评
<