2013-03-05 103 views
1

我有一個API,我在客戶端通過JS查詢,然後在頁面上顯示結果(再次通過JS)。客戶端緩存(使用JavaScript)

我有每秒5個查詢的限制。在現實生活中,我可以在一個循環中最多發送11個API調用。

我需要的:

  1. 我需要以某種方式繞過查詢11次的限制,因爲通常我需要在一個循環中大約50個呼叫。

  2. 我需要確保我不會在每次刷新頁面時發送相同的API請求。

顯而易見的解決方案是緩存。爲了符合速度要求,理想情況下,我想在客戶端緩存數據。

問題:

如何?由於4KB的大小限制,我認爲餅乾不是一個好的解決方案。我聽說過谷歌齒輪(他們用於Offline-Gmail),但最近的搜索結果顯示它不再存在。

+1

谷歌齒輪貶值,因爲它幾乎所有的功能在本地支持現代瀏覽器。看看LocalStorage和SessionStorage API。我認爲LocalStorage將滿足您的需求。 – SWilk 2013-03-05 16:37:36

回答

2

您可以使用localstorage,但前提是您需要在瀏覽器刷新之間保留緩存。如果你不這樣做,那麼你可以使用內存,如數組或結果。

+0

我需要不僅在頁面刷新之間存儲數據,而且還需要一個月的時間:)本地存儲聽起來很有趣,但所有瀏覽器都支持這一點嗎? – rinchik 2013-03-05 16:20:18

+0

@rinchik只有現代瀏覽器支持它,因爲它是html5功能,另一種解決方案是將其保存在服務器中的文件中,並在腳本啓動時加載該文件。 – jcubic 2013-03-05 16:21:50

+1

將window.name是一個可行的替代?我不確定安全發展是否阻礙了它,但我認爲它有2MB的存儲限制。 – user18477575 2013-03-05 16:43:34