隨筆-200  評論-148  文章-15  trackbacks-0
          Ajax改變了瀏覽器的默認規則,在使用Ajax應用時,后退往往會得不到我們還要的結果。那么如何來處理這種方式,使之更適合我們的習慣呢。
          ? Brad Neuberg的開源Really Simple History (RSH)框架是一個簡單的解決這個問題的方案。其實現的方式如下:用隱藏的iFrame,Timer和隱藏的Form來檢測歷史瀏覽的變化,其中隱藏的Form用來保存頁面的數據信息。
          ? 當然其他還有如Backbase 和 Dojo還可以解決這種問題,但復雜度就高了些。
          ? 下面就以先前的樣例程序來看一下如何使用RSH框架,其實很容易的:

          包含RSH框架的JS腳本: <script src="/oblog312/dhtmlHistory.js"></script>


          初始化框架并定義后退時的回調函數:
          <script language="JavaScript">
          ? function initialize() {
          ? ? // 初始化框架
          ? ? dhtmlHistory.initialize();
          ? ? // 加入回調函數
          ? ? dhtmlHistory.addListener(historyChange);
          ? }

          ? /** Our callback to receive history
          ? ? ? change events. */
          ? function historyChange(newLocation, historyData) {

          ? ? //更新數據
          ? ? DWRUtil.removeAllRows("goodsbody");
          ? ? var arrayUrl = newLocation.split(":");
          ? ? if (arrayUrl.length == 2) {
          ? ? ? ? document.getElementById("type").value = arrayUrl[0];
          ? ? ? ? document.rentalForm.select.checked = false;
          ? ? ? ? document.getElementById("totalRecords").innerHTML = historyData.length;
          ? ? ? ? DWRUtil.addRows("goodsbody", historyData, [ addCheckbox, getName, getPrice, getCount]);
          ? ? ? }
          ? }
          </script>
          在數據更新時保留之前的地址: ?
          function fillTable(goods) {
          ? ? dhtmlHistory.add(document.getElementById("type").value+":"+new Date().getTime(), goods);
          ? ?
          ? document.rentalForm.select.checked = false;
          ? document.getElementById("totalRecords").innerHTML = goods.length;
          ? DWRUtil.addRows("goodsbody", goods, [ addCheckbox, getName, getPrice, getCount]);
          }

          當然還在頁面初始化加入上面的初始化函數:
          <body onload="initialize();">

          ? OK,大功告成,簡單吧^_^
          posted on 2006-07-15 09:58 無聲 閱讀(965) 評論(0)  編輯  收藏 所屬分類: 職場生活
          主站蜘蛛池模板: 梁河县| 新干县| 鹿邑县| 德阳市| 常熟市| 红原县| 元氏县| 黑河市| 高要市| 钟山县| 宜兰县| 彰化县| 华坪县| 丰顺县| 岳西县| 宜春市| 新河县| 德令哈市| 安顺市| 工布江达县| 松原市| 蒲城县| 隆安县| 阿尔山市| 定西市| 禹州市| 贵南县| 定远县| 凤庆县| 彰化市| 平阳县| 浏阳市| 台中市| 泰兴市| 梅州市| 麻江县| 蓬溪县| 增城市| 桂林市| 遂平县| 金溪县|