簡體   English   中英

使用ajax調用時如何實現next / back函數?

[英]How to implement next/back function when using ajax call?

我正在一個顯示交易記錄列表的網站(每頁10條記錄)。

該頁面具有分頁搜索功能,允許用戶查看特定的交易記錄。(如日期范圍,類型...最多最多10個參數)

當用戶單擊任何內容(更改頁面/搜索條件)時,將使用ajax調用來獲取和顯示交易,而無需重新加載。

但是,例如,用戶單擊下一頁(ajax調用)以查看page2並嘗試單擊瀏覽器的后退按鈕。 該網站會將他重定向到另一個網頁,而不是返回到第1頁。

我知道有一個window.history.pushState可以更改url,而無需在chrome / Firefox中重新加載html5。 但我必須支持 IE7 + / FF / Chrome / Safari等較舊的瀏覽器

是否有解決此問題的現有解決方案? 謝謝。


編輯 :我已經中午嘗試了history.js。

// newUrl:“?para1 = value1&para2 = value2&....

history.pushState({data:"searchTransaction"}, document.title, newUrl);

在ajax請求之后,URL也已更改。 我有一個問題是如何處理更改事件。 我想綁定back / next(user click)事件並獲取“ newUrl”,然后將其解析回參數映射並再次執行ajax請求。 而且我想在可能的情況下存儲整個參數數組。

不幸的是,您無法捕獲“ back / next”事件,因為該事件不存在,但是您可以捕獲statechange

// Bind to StateChange Event
History.Adapter.bind(window,'statechange',function(){ // Note: We are using statechange instead of popstate
    var State = History.getState(); // Note: We are using History.getState() instead of event.state
    History.log(State.data, State.title, State.url);
});

我通常要做的是捕獲用戶的點擊,並且如果在沒有單擊的情況下觸發了狀態更改,我會假設用戶下一步還是返回。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM