簡體   English   中英

在GET請求之間堅持JavaScript變量?

[英]Persist javascript variables between GET requests?

允許使用ASP .NET
允許將值存儲在隱藏的輸入字段中
不允許查詢字符串
不允許發布請求

是否可以在GET請求之間存儲JS變量?
我想使用ClientScript.RegisterStartupScript在客戶端上重新初始化它們

我可以為此使用cookie嗎?
還有其他可能性嗎?
發出請求時將cookie存儲在哪里?

我可以為此使用cookie嗎?

是的,請參閱有關在Javascript中使用Cookie的教程

還有其他可能性嗎?

如果不允許您在請求的URL后面附加任何內容,那么我將無法提出。

發出請求時將cookie存儲在哪里?

在HTTP請求標頭中。 上述教程將告訴您如何從Javascript中讀取它們的值。 在使用ASP.Net的服務器端,可以使用Request.Cookie["cookieName"]讀取Cookie值,該請求返回HttpCookie

我不強烈建議這樣做,但另一個選擇是更改window.name屬性。

可以在此處保存一些次要數據,然后在下一頁加載時檢索它們。

優點:

  • 快速,但有效

缺點:

  • 整理彈出窗口/子iframe的所有窗口引用
  • 由於它是“黑客”,因此瀏覽器供應商將來可能會破壞此“功能”

當然,如果您可以排除所有舊的瀏覽器,請使用“ 全局/客戶端會話存儲”

目前,使用Cookie是您的最佳選擇。 您可以將JavaScript對象序列化為字符串,然后將它們反序列化回對象。 JSON是一種不錯的選擇格式,因為它是JavaScript的子集。

Flash中還存儲了對象。 在Google Gears中存儲。 DomStorage

請參閱該庫,每個庫都有一個接口: http : //pablotron.org/?cid=1557

如果您可以控制頁面的各個方面,那么還可以將頁面包裝在頂層框架中。 然后僅刷新子框架。 然后,您可以將內容存儲在父框架中。

您可以在諸如GMail之類的網站以及其他網址中唯一發生變化的網站位於#之外的網站中看到此代碼。

您甚至不必更改URL,該部分僅用於人類友好的URL。 (因此,您實際上可以按原樣復制和粘貼URL)。

如果您存儲的對象很大,或者您想精確地還原它們(JSON肯定沒有),請使用http://rhaboo.org 大多數庫將大型對象和數組序列化為單個localStorage條目,但這意味着對每件事進行小的解碼和重新編碼,這意味着對忠實用戶的性能會逐漸變差。 Rhaboo為對象中的每個終端值使用單獨的LS條目,然后分別調整或附加它們,因此不會影響性能。

順便說一句,我寫了rhaboo。

暫無
暫無

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

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