これが賢明であるかどうかについてのアドバイスが必要です。主にAJAXリクエストを通じてサイトデータをロードしています。ロード時間とサーバーコールを節約するために、グローバルオブジェクトにロードされたすべてのデータを保存し、ユーザーがそのページを再び選択した場合にそのデータをリサイクルします。ロードされたすべてのデータを1つのJavascriptオブジェクトに格納
私は等々、一つのオブジェクト、例えば:
var page = ['level 1','level 2','level 3','level 4'];
var mysiteobj = [];
if (page[0] == 'level 1')
if (!mysiteobj['level 1'])
$.ajax(/*load data*/).done(function(data){ mysiteobj['level 1'] = data; /*display data*/ });
else /*display mysiteobj['level 1']*/
if (page[1] == 'level 2')
if (!mysiteobj['level 1']['level 2'])
$.ajax(/*load data*/).done(function(data){ mysiteobj['level 1']['level 2'] = data; /*display data*/ });
else /*display mysiteobj['level 1']['level 2']*/
...etc
にサイト全体をキャッシュすることが賢明であるのか疑問に思っ...と。ちょっと奇妙な表記法を明確にするために、「レベル1」はユーザーが検索する地理的な領域のすべてであり、「レベル2」はユーザーが見る地域のすべての部門であり、「レベル3」は部門のカテゴリジオの部門のカテゴリに記載されている商品またはエントリに「レベル4」と表示されます。
私の方法は、すべての地理的領域を持つオブジェクトがあり、新しいジオがロードされるたびに2番目のオブジェクトが新しい部門リストで上書きされ、3番目のオブジェクトがカテゴリを保持し、製品。
これが意味をなさない場合は、アドバイスをお願いします。私は、単純化された質問は、あなたがオブジェクトが扱いにくくなり、ブラウザを駄目にする前に、どれだけ大きなオブジェクトを作ることができるかということですね。
ページやユーザーがアイドル状態のときにすべてを「プリロード」できます。ページ1をブラウズするときのように、他のページをバックグラウンドで読み込みます。 – Joseph
@Joseph - あなたはできるが、ユーザーには何のメリットもないかもしれない多くの通話を行っている。もし彼らがモバイルデバイスにいて、帯域幅を払っているのであれば問題になるだろう。また、これは、ユーザーがレベル2の1つの部分だけを見て、次にレベル2からのすべてをロードし、多数が使用されないときにダウンするとメモリを使い果たします。 –
良い点があります。私はモバイルについては決して考えなかった。 – Joseph