2011-07-14 22 views
1

我們希望在新項目中使用HTML5 sessionStorage(或類似的東西),但在某些瀏覽器上不能依賴它。這個項目(http://code.google.com/p/sessionstorage/)提供了一個可以在很多地方工作的實現,但奇怪的是,如果可用,它不會使用HTML5版本。它總是做自己的事情。是否有HTML5 sessionStorage的包裝提供了良好的兼容性實現?

在GitHub上有這個項目(https://github.com/jas-/jQuery.handleStorage但它的仿真層是cookies(bleh!)

注:以上內容不正確,請參閱jas-下面的答案,他解釋說我誤解了該項目。

還有什麼比這更好的提供了像第一個項目一樣好的實現,但如果可用則會自動回落到HTML5?如果可以的話,我們可能會將第一個項目改造爲自動回退到HTML5,但如果已經有了一個好的解決方案,那麼我們不會構建它。

+0

[Google Gears/HTML5的JavaScript包裝器]的可能重複(http:// stackoverflow。com/questions/3889583/javascript-wrapper-for-google-gears-html5) – symcbean

+0

不,絕對不是重複的。那是關於Google Gears和HTML5的共同點。我們需要的解決方案不僅僅是這兩個用戶的子集。 robertc提到的StorageLite實際上是理想的,它對許多使用其他機制的不同瀏覽器都具有後備功能。我可能會看看,看看YUI3的開銷是否足夠低,我們不會在乎,或者我們是否可以將它移植到jQuery。 –

回答

0

我最終在這方面做了更多的研究,因爲我喜歡我得到的兩個答案,但我想要更像YUI 3:Storage Lite的東西,但不需要YUI。一些框架不可知或jQuery友好的東西對我們來說會更好。

最後,我發現一對夫婦的可能性,一個站出來爲我們會盡力並投入使用:Lawnchair

也認爲:store.jsAmplifyJS

+0

想知道爲何選擇AmplifyJS的Lawnchair嗎? – RedWolves

+1

-1您選擇的解決方案似乎與您的原始問題的標準不符:在我看來,所有提到的3個選項都不支持基於會話的存儲,只存在於會話間的持久性存儲(例如localStorage和UserData) 。 store.js甚至專門提到:https://github.com/marcuswestin/store.js#no-sessionstorageauto-expiration。我意識到這是你自己的解決方案,但作爲其他人學習的SO項目,我必須對其進行降級(至少在原始問題更新之前)。 – tsemer

1

我知道你說你想要一個解決方案,但是這樣做有什麼問題嗎?

if(!window.sessionStorage){ 
    $.getScript("/google_code_sessionStorage.js"); 
} 
+0

果然如此。如果仿真很好(我還沒有將這些方法並排比較),那麼我們可以進行測試,加載代碼並將正常存儲對象或仿真器的實例分配給變量,然後只需要幾行代碼就可以開心。 –

1

有此一對夫婦的YUI實用工具,這取決於您是否使用2或3:

都將使用HTML5會話存儲如果可供使用的話。

+0

目前我們沒有使用YUI,我們使用jQuery來處理所有事情。但這些看起來像是出色的解決方特別是Storage Lite和它廣泛的仿真。這很讓人佩服。 –

+0

@JohnMunsch YUI2有點單一,但YUI3有一個動態加載和最小交付的選項負載,所以你可以[只需加載你需要的位](http://developer.yahoo.com/yui/3/ yui /#use) – robertc

1

Munsch電子郵件,

我實現這個職位已經有幾年了,但我想澄清你提到的項目,我是jQuery.handleStorage的作者,它不使用cookies作爲客戶端存儲的默認方法。

如果您閱讀了該項目的文檔,您將看到其三種客戶端存儲選項之一是在客戶端瀏覽器不支持HTML5 localStorage和/或sessionStorage API的情況下使用cookie。因此,如果您需要一個更強大和更靈活的客戶端存儲工具,我會推薦secStore.js,因爲它不隱式地要求綁定到表單,支持HTML5客戶端存儲選項,優雅地降級到cookie舊版瀏覽器,並可選擇使用SJCL API爲可能的敏感數據提供透明加密。

+0

對於誤解您的項目我深表歉意,我會編輯以澄清上述內容。另外,即使這是一個非常古老的問題,謝謝你提供答案,我從經驗中知道人們仍然會遇到這些舊問題,並從中獲得幫助。至於我自己,我自己再也不需要這個了,現在我們支持的所有瀏覽器都支持localStorage和sessionStorage,所以現在可以輕鬆處理本地緩存數據。 –

+0

不用擔心,我應該爲兩者做的一件事是刪除jQuery依賴項。 –

相關問題