jQueryAJAXを使おうとしています。私の要件は、データセット内のDBからユーザー名をロードし、それをJSON形式に変換してメモリに保存するか、ユーザーが私のサイトを閲覧しているとき、つまりセッションで使用するためにjQueryデータを使用したいことです。このようにして、オートコンプリートまたは独自のコードを使用して、ユーザーにデータを表示できます。
誰かが私がそのようなシナリオを設計するのを手伝ってもらえますか?
Cookie、Google Gears、独自のソリューションを超えて考える
標準化されており、特別なプラグインは必要ありません。JavaScript/jQueryを介してスクリプト可能。最新のブラウザでのみサポートされていますが、HTML 5 Webストレージ、つまりlocalStorageプロパティとsessionStorageプロパティを使用できます。これは、ページリクエスト間でWebサイトのコンテキストでクライアント側の状態を維持することを目的としています。クッキーよりもはるかに多くのものを保持します。たとえば、IE 8 DOMストレージ仕様(10 MBクライアント側ストレージ)、FirefoxDOMストレージ仕様。
ブラウザがサポートする内容に応じて、ストレージを抽象化するYUI 2ストレージユーティリティ(HTML 5、Google Gears、SWF)もあります。
ストレージユーティリティは、ブラウザが提案されたHTML 5ストレージ仕様をサポートしているかどうかに関係なく、クライアント側で大量のテキストデータを保存するためのメカニズムを提供します。
JQueryデータは、ページが更新されるときに1つのページから次のページに移動するとデータが失われるため、役に立たない場合がありますが、COOKIESを使用してこれを行うことができます。jQueryCookieプラグインを使用すると簡単になります。
セッションはサーバーサイドを意味します。jQueryはクライアントサイドを意味します。2つの間で翻訳することはできません。クッキーは、厳密にクライアントサイドを維持するために期待できる最高のものです。
Google Gearsは、これを行うために私が知っている唯一のソリューションですが、ユーザーがそれをインストールする必要があり、いくつかのブラウザーでのみ実行されます。ただし、$.getJSON
ユーザーが次のように言ったときに、JSONエンコードおよびgzipされたユーザーのリストをサーバーからフェッチするために使用できます...自動完了された検索ボックスに焦点を合わせ、積極的なクライアント側のリソースキャッシングを使用してデータベースにヒットします。
ユーザーのリストがかなり長い場合は、memcachedを使用してリストを保存するか、ファイルに書き込んでフロントエンドサーバー(Nginx、Lighttpd、Apache:pretty)から直接提供することを検討してください。 DBクエリの実行を回避する多くのこと)
私はPersistJSを使用して、あなたが説明していることのほとんどを実行することに大きな成功を収めてきました。これは、これらの利用可能なバックエンドのいずれかを使用してクライアント側のストレージを抽象化する軽量プラグイン(<10k)です。
ブラウザの機能とインストールされているプラグインに基づいて、最適なストレージバックエンドを透過的に選択します。それは以下で動作します:
...他の永続ストレージオプションが機能しない場合は、オプションでCookieにフォールバックします。DOMストレージ方式では、少なくとも数メガバイト相当のストレージスペースが得られます。Cookieにフォールバックすると、約4kBに制限されます。