1. 程式人生 > >返回到前一個頁面時顯示前一個頁面中ajax獲取的資料

返回到前一個頁面時顯示前一個頁面中ajax獲取的資料

      情景實現:專案有個任務就是在訂單結算提交前可以增加發票擡頭,用的是AJAX請求後臺後返回資料展示在前端頁面,新增完同時選取該發票後提交訂單,如果因為各類原因(比如餘額不足,庫存不夠)的影響訂單提交不成功,使用者想返回上一頁修改訂單重新下單結算時,發現剛才新增的發票資料不見了,ajax獲取並插入頁面的結構都沒有了,而實際上資料是存在的。

      解決方案:網上查詢後發現可以通過處理history物件來解決。可以用history.pushState方法和history.replaceState以及window物件的popstate事件,這個方式可以讓你用JS自己控制URL和前進後退事件,並且用ajax重新整理網頁的區域性內容。

     使用了history.replaceState方法來改變當前頁面的state,每次ajax獲取資訊後,將頁面中希望保留的內容放入state中,當返回到這個頁面中時,讀取state中的資訊,如果state不為null,那麼將state中的頁面結構展示出來。

這裡寫圖片描述

步驟很簡單,大概分兩步:

1、ajax獲取資訊並拼裝到html結構後,將希望保留的html結構放入state中

  var stateObj = { current_html:  $('#for_add_newInv').html() ,invoice_all: $('#invoice_control').html()};
  history.replaceState(stateObj, ''
, 'flow.php?step=checkout');

2、返回這個頁面的時候,檢視state是否儲存有資訊,如果有就展示出來,再做一些對應的處理就好了

<script type="text/javascript">
  var prev_html = history.state && history.state.current_html;
  if (prev_html) {
    $('#for_add_newInv').html(prev_html);
  }

  var invoice_all = history.state && history.state.invoice_all;
  if
(invoice_all) { $('#invoice_control').html(invoice_all); } </script >

相關推薦

筆記-返回一個頁面顯示一個頁面ajax獲取的數據

最終 logs ajax請求 嘗試 但是 repl 拼接 新聞 筆記 筆記第一部分:http://www.cnblogs.com/zczhangcui/p/6869219.html 在第一部分遇到的問題是,用ajax獲取了一系列列表信息後,拼接好html後插入到了原有頁面中

返回一個頁面顯示一個頁面ajax獲取資料

      情景實現:專案有個任務就是在訂單結算提交前可以增加發票擡頭,用的是AJAX請求後臺後返回資料展示在前端頁面,新增完同時選取該發票後提交訂單,如果因為各類原因(比如餘額不足,庫存不夠)的影響訂單提交不成功,使用者想返回上一頁修改訂單重新下單結算時,發現

MUI中點選推送訊息,若為同類型資訊,不關閉一個頁面,開啟新頁面顯示一個頁面資料的問題

最近公司在做的一個專案涉及個推推送,在寫推送過程中遇到了很多問題,現在把其中的一個問題與大家分享。 我們要實現的功能是後臺推送過來,我要根據推送的資訊型別進入不同的頁面,展現不同的資訊,但在寫的過程中發現同一種類型資訊,在不關閉前一條資訊的情況下,點選下一條同類型的資訊,開啟的頁面還是顯示上

在寫移動端頁面發現的一個background-clip的問題

在寫移動端網頁的時候background-clip一直沒有效果 這是我想要的效果 但是,background-clip 一直都沒有效果!! 經過我的反覆檢查,確定沒有語法錯誤的情況下,終於找到了問題的緣由!!!!! 那就是相容性,相容性,相容性!!!! 所以在寫移動端

當點選一個View,顯示下面隱藏的一個View(摺疊的動畫效果)

先寫一個簡單的佈局 , 用於點選和隱藏 , 如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.androi

【轉載】將Ubuntu16.04 gedit在僅顯示一個檔案顯示檔名tab

Ubuntu16.04中gedit在僅顯示一個檔案時,不顯示檔案tab,也看不到檔名。可以修改gedit的設定,使之始終顯示檔案tab,方法如下。在終端中輸入gsettings set org.gnome.gedit.preferences.ui show-tabs-mode

jquery點擊li標簽之後在該li標簽上添加一個class,點擊下一個li刪除上一個li的class

style 下一個 div mov 元素 使用 font rem pre 思路:點擊當前li元素後是用removeClass()刪除所有兄弟元素(使用siblings()獲取)的class樣式,然後使用addClass()為當前li添加class 具體演示如下: 1、HTM

<問題解決10>使用帶有框架的頁面跳轉到登錄頁面,登錄頁面顯示在子框架,未能鋪滿整個瀏覽器--解決方案如下:

頁面 tro color 過期 描述 例如 ren 方案 col 問題描述:     使用帶有框架的頁面跳轉到登錄頁面時,登錄頁面只顯示在子框架中,未能鋪滿整個瀏覽器,例如:     當登錄信息過期時,點擊左邊的菜單欄會讓登錄頁面顯示在右邊的框架中,而不能鋪滿整個瀏覽器  

微信小程式 返回上一頁面實現上一頁面重新整理

假如從頁面B返回頁面A時實現頁面A重新整理 頁面B: var pages = getCurrentPages();//當前頁面棧 if (pages.length > 1) { var beforePage = pages[pages.length - 2];/

Android進入下一個Activity在上一個Activity主動呼叫onDestroy()方法不會真正將上一個Activity從棧刪除

因為要完成任務,就除錯了一個最基礎的程式,就當再瞭解一下Activity的生命週期了~ 先描述一下大概的情況哈:現在就只有兩個Activity,分別是FirstActivity和SecActivity,在FirstActivity中有一個Button控制元件,功能是按下這個

一個可以下滑顯示一個面板的Toolbar。這個library受Drawerlayout的啟發,但有別於Drawerlayout顯示左右抽屜,這個library會提供下拉toolbar顯示一個面板的功

為了使用它你需要把ToolbarPanelLayout作為你的根佈局: <com.nikoyuwono.toolbarpanel.ToolbarPanelLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app

fragment+viewpager第二次載入頁面顯示空白的原因!

在編寫一個底層有三個RadioButton,中間層是一個Linearlayout的app的的時候,在每個radiobutton對應的向Linearlayout中新增fragment,第二個有點特殊,不是直接的加入fragment而是加入了一個viewpager,並且在vie

前端使用JSP來進行開發,用AJAX獲取資料,控制返回給前端返回的是JSP頁面,還是JSON資料

一,問題 以前開發的時候,前端使用JSP或許Thyme Leaf來開發。由於是使用AJAX來獲取資料,所以有時會犯糊塗,如何控制給前端返回頁面,還是一個JSON格式的資料。 二,解決方案 2.1 當你需要給前端返回JSON資料時 方案就是:在

小程式ajax獲取資料遍歷 幾名樣式不一樣

直接上程式碼 <view class='list' wx:for-index="idx" wx:for="{{datas}}" wx:key='index' bindtap="btnanniu" > <view style='height:50px;' w

專案中彈出頁面顯示層次問題 CSSz-index屬性

z-index最大值: IE FireFox Safari的z-index最大值是2147483647 。 Opera的最大值是2147483584.。 IE Safari Opera在超過其最大值時按最大值處理。 FireFox 在超過最大值時會資料溢位正負不定,但有一點可以肯定絕對不會高於2147

AJAX獲取資料然後顯示頁面

主要功能流程介紹 迴圈獲取列表資料 點選列表資料進入詳情頁 點選報名參加彈出報名成功提示框 點選提示框中的確定按鈕,跳回列表頁 程式碼實現流程和解說 一、列表頁 1、訪問連結list.php時判斷是pc端還是客戶端 $user_a

jsp利用cookie記住使用者名稱,下次登入顯示在文字框

<body> <% String cardid = null ; Cookie[] cks = request.getCookies() ; if(cks != null) { // 如果已經設定了cookie , 則得到它的值,將該值放在卡

Vue.js 通過jQuery ajax獲取資料實現更新後重新渲染頁面

1. 引入jquery和vue.js <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> <script

jquery方式ajax獲取資料並渲染頁面

var newsData = ''; var mydata = {"pageNum":obj.curr,"pageSize":"5"}; //引數 newsData = getData(mydata); //通過ajax獲取資料 pageNum = newsData.pageNum; $(".

vue單頁應用,使用setInterval()定時向伺服器獲取資料,後來跳轉頁面後,發現還在不停的獲取資料

使用VUE開發單頁專案時遇到這樣的問題,mounted中使用setInterval()定時向伺服器獲取資料,後來跳轉頁面後,發現還在不停的獲取資料。我以為是因為我路由用的push導致的,改成replace也是這樣,後來就在部落格園找到答案了,如下: http://www.cnblogs.com/zzbp/p/