zoukankan      html  css  js  c++  java
  • 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的情況。以前的方法缺點在於無法導航回到首次進入頁面的狀態。





  • 相关阅读:
    (C)const关键字
    (C)volatile关键字
    蛋疼的四旋翼
    多线程之:死锁
    多线程之:ThreadLocal
    多线程之:线程同步代码块
    多线程之:线程安全
    多线程之:竞态条件&临界区
    多线程之:java线程创建
    多线程之:多线程的优缺点
  • 原文地址:https://www.cnblogs.com/sohobloo/p/2295912.html
Copyright © 2011-2022 走看看