こんにちは 作業中にBackbone.jsで何を書かなければならなかったのか、また何に遭遇する可能性があるのかについての記事を執筆し続けます。 今日は、非同期データの読み込み、またはサイトで頻繁に必要なデータについて説明します。
サイトにさまざまな種類のデータ(画像、テキスト、音声)を追加できるが、これらの種類は拡張できるとします。 可能なタイプはデータベースに保存されます。 毎回基地から出るのは非常に高価です。 一度取得して使用する必要があります。
したがって、データをロードします。
app.models.dataTypes = new DataTypesCollection(); app.models.dataTypes.fetch();
ここで
、ユーザーに
app.models.dataTypesをどこでも表示し
ます 。 しかし、ユーザーがこのフィールドを必要とするページにすぐに移動した場合、パンクする可能性が1つありますか? これを行うには、データが受信されるイベントを作成します。
app.models.dataTypes = new DataTypesCollection(); app.models.dataTypes.fetch({ success: function() { Backbone.history.trigger("dataTypesLoaded"); } });
次に、このイベントを「キャッチ」する必要があります。 このために、関数
loadDataTypesを作成しました 。この関数
は、データを
配置する
場所 (
place )をパラメーターとして受け取ります。 このブロックを1ページの複数の場所に表示する必要があるためです。 (データの追加と編集は1ページで行われます)。
function loadDataTypes(place) { place.empty();
したがって、たとえば最初のロードでデータをロードし、適切な場所でそれを発行します。 任意の番号に電話できます。
しかし、一般的に言えば、このようなフィールドを多数持つことができます。 すべてのフィールドに対して、同様の関数を記述し、すべてのデータはロード時に非同期にロードされます。 ユーザーは、すべてがロードされる速度に気付くことさえありません。
利点から、サーバーからデータを一度だけ取得し、必要なだけ使用することができました。 したがって、ユーザーを傷つけることなく。
PS
SelectItemViewの説明が必要な場合は、書き込み、追加できますが、すべては簡単です。