3 回答

TA貢獻1869條經驗 獲得超4個贊
我想也許我在聊天后現在完全理解你的問題了,我希望,無論如何!--
瀏覽器代碼緩存
當您在 Chrome 或瀏覽器中下載頁面時,它會存儲在本地瀏覽器緩存中。但它存儲頁面的命令,而不是狀態。因此,當您返回時,將根據 HTML 和 CSS 命令重新呈現 HTML,并重新執行 JS。我從 Chrome 的官方開發博客 v8.com 找到了一些信息......
當第二次請求 JS 文件時(即熱運行),Chrome 會從瀏覽器緩存中獲取該文件,并再次將其交給 V8 進行編譯。然而,這一次,編譯后的代碼被序列化,并作為元數據附加到緩存的腳本文件中。
因此,您會看到,當您點擊后退按鈕時,它會重新編譯并重新運行 JavaScript,但它不會恢復上次運行的 JavaScript 生成的先前元素,或者用戶提交的觸發該狀態的事件。
來源:V8.com:JavaScript 開發人員的代碼緩存
后向緩存 (BFCache)/瀏覽器表單緩存
不要將其與緩存的表單數據混為一談,這是完全不同的。 Chrome 會自動使用后退按鈕緩存您的舊表單數據,但這不是代碼緩存功能的一部分。針對該問題查看類似的問題:使用瀏覽器后退按鈕返回時清除表單中的所有字段
谷歌 2019 年 2 月更新:這似乎應該在不久的將來某個時間修復。資料來源:探索 Chrome 的后退/前進緩存。

TA貢獻1839條經驗 獲得超15個贊
這是一個解決方案:
我試圖通過 jQuery 將用戶的文本放入 type="hidden" 元素中,但是在 BACK 按鈕之后它已經丟失了,但是如果我將答案放入 style="display:none 的 type="text" 元素中",我在 BACK 按鈕之后有用戶的文本,我可以使用用戶的文本重新創建動態字段。
感謝大家的建議,希望這能幫助遇到這個問題的其他人。
添加回答
舉報