問題タブ [amd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - BackboneJS ルート レベル ビュー
「ほぼ」すべての画面に表示されるルート レベルの HTML がある場合、これをどこでどのように整理しますか?
backbone-boilerplate と requirejs を使用しています。ルート レベル ビューの 1 つは、画面の下部からいつでも呼び出すことができるグローバル ナビゲーション要素です。
これは、モデル (可視性、選択状態、クリックのログなど) を持つモジュールに編成されます。アプリは次の場所に保存されます。
次に、ルーターの初期化メソッドで、次のものがあります。
それは正常に動作しますが、機能が成長するにつれて、ルーターの初期化メソッドは、同様のルートビュー、サブルーターなどで手に負えなくなります.何かが完全に欠けていますか?
あなたは何をお勧めします?
javascript - RequireJS - 初期化のためにパラメーターをモジュールに渡す
重複の可能性:
AMD (require.js) の使用中に Backbone.js でブートストラップされたモデルを読み込む方法
私は現在、私たちのプロジェクトの 1 つに RESTful API を作成しており、それにアクセスするための Javascript ライブラリも提供したいと考えていました。
私は AMD の原理が好きで、require.js を使用しているので、AMD モジュールも提供します。問題は、モジュールの初期化には、初期化時の API キーなどの情報が必要になることです。
初期化時にそのようなパラメーターをモジュールに渡すにはどうすればよいですか?
javascript - コードフットプリントが最小限の JS ローダー
数日前、JS ローダーが必要という問題に遭遇しました。
次のファイルがあります。
このファイルを「c.js」から順番にロードする必要があります。
私はjsローダーについて簡単な調査を行い、それらの多くは私の例のような深い依存関係では機能しない(または機能しますが醜い方法で)ことがわかりました。 、特定の依存関係の依存関係を心配することなく(あなたが今何を意味するのか)。
requireJs のようないくつかの深刻なローダーはそれを行うことができますが、私はそれらがそのような場合の b/c で少し面倒だと思います:
...ほんの少しの依存関係に対して、コードが多すぎます。
また、スクリプトを変更する必要があるのは好きではないので、$ を返す必要がある場合、jQuery のようなものを返します。
時間を節約し、すべてのローダーを試すのを避けるために、この質問を作成しました。
したがって、大きな問題は、どの JS ローダーが次のことを実行できるかということです。
- 私の例のように、すべての依存関係と依存関係のすべての依存関係 (...など) が読み込まれたときにのみ callback() が起動されるときに、「深い」依存関係を読み込みます。
- 依存関係リストとコールバックを備えた 1 つの reuqire 関数を持つように、小さなフットプリントを持ち、「コールバック」を返して何かを渡す必要はありません (通常、ga、gb、gc などの独自の名前空間があるため)。
私がそれを見たいと思ういくつかの例:
*私の英語でごめんなさい。
Ps - 実際には、私は独自のローダーを作成しました。これは、特定のことを行い、$script.js よりも小さい (580 バイト) ですが、何かが必要な場合は、現在のスクリプトのファイル名をこのように渡す必要がありますrequire('main.js', ['b.js'], function(){});
- しかし、私はしません私の実現に頼りたいです。
dojo - Dojo 1.7 require() の外で Dojo コンポーネントを使用する方法
Dojo 1.7.2 で AMD ローダーを使用して、以下のような Dojo ウィジェットを作成しました。
上記の例では、最後のステートメントで変数「myCpane」が「未定義」になっています。「require()」コールバック関数内で「myCpane.startup()」を使用すると、正常に動作します。
しかし、私はその「myCpane」変数を「require」関数の外側で使用したいと考えています(多くの理由から)。Dojo によるコンポーネントのロード プロセスが原因で、'require()' コールバック関数の実行が遅れていることはわかっています。
私の質問は、
- コールバック関数の実行が完了するまで「require()」関数をブロックする方法。
したがって、変数「myCpane」は、コントロールが「require()」関数から出たときに「未定義」にはなりません。
================================================== =========
この問題を克服するために、モジュールをロードし、モジュールのロードが完了するまで待機する小さな関数を作成しました。
関数の出力は常に while ループを実行しており、変数「moduleObject」に値を設定するために、コントロールが「require()」のコールバック関数内に入ることはありません。
「require()」関数がコールバック関数を呼び出すのはいつですか? ブラウザー デバッガー ウィンドウを使用して、ファイル 'ContentPane.js' が正しく読み込まれていることを確認しましたが、コールバック関数が呼び出されません。while ループをコメントすると、コールバックが正しく呼び出されます。
私の場合、コントロールがコールバック関数の中に入るのはいつですか?
backbone.js - Use! を使用して Backbone.Relational をロードしています。プラグイン
Backbone Relational は AMD 準拠のライブラリではないため、アンダースコアとバックボーンの両方が依存関係として読み込まれるようにするためのプラグインを見つけました。ここに私の設定ファイルがあります
また、Backbone Relational ライブラリを強化しました
最後に、モデル内でリレーショナルを呼び出しています
プロパティ Relational を undefined に設定できないというエラーが表示されます。意味 バックボーンが利用できません。私は何が欠けていますか?
私が使用しているいくつかのリンク
https://github.com/tbranyen/use.js
https://github.com/tbranyen/layoutmanager-example/blob/master/app/index.js
https://raw.github .com/PaulUithol/Backbone-relational/master/backbone-relational.js
javascript - 連結された RequireJS AMD モジュールにローダーが必要なのはなぜですか?
私たちは開発中に RequireJS と AMD を愛用しています。モジュールを編集し、ブラウザーでリロードを押して、すぐに結果を確認できます。しかし、本番環境でのデプロイのためにモジュールを 1 つのファイルに連結するときが来たら、AMD ローダーがまだ存在している必要があるようです。そのローダーが RequireJS 自体であろうと、その小さなパートナーである「アーモンド」であろうと、ここで説明されています。
http://requirejs.org/docs/faq-optimization.html#wrap
私の混乱は次のとおりです。なぜローダーが必要なのですか? require()
モジュール内で呼び出しを行う必要がある非常に異常な状況でない限り、一連の AMD モジュールは、ローダーがまったく存在しなくても連結できるように見えます。最も単純な例は、次のようなモジュールのペアです。
ModA.js:
ModB.js:
これら 2 つのモジュールを考えると、連結子は単純に次のテキストを生成でき、RequireJS または Almond が必要とする追加の帯域幅または計算で運用サーバーまたはブラウザーに負担をかけないように思われます。
生成する連結子を想像します (そして、上記の 2 つのモジュールからのスニペットが挿入された場所を示すために山形引用符 «,» を使用しています):
これは、私が見る限り、AMD のセマンティクスを正しく再現し、不要なグルー JavaScript を最小限に抑えます。そのような連結子はありますか? もしそうでなければ、私がそれを書くべきだと考えるのはばかです — で書かれたシンプルでクリーンなモジュールで構成され、後でコードの非同期フェッチを開始する内部でのdefine()
さらなる呼び出しをまったく必要としないコードベースは本当にほとんどないのでしょうか?require()
javascript - require.js data-main のキャッシュを期限切れにする
AMDモジュールをパッケージ化するためにrequire.jsとr.jsを使用しています。次の構文でjqueryとrequirejsを使用しています:
これはすべて、パッケージ化前およびパッケージ化後にうまく機能しますが、chrome およびモバイル サファリが client.js のキャッシュされたバージョンを保持するという多くの問題に遭遇します。client.js にキャッシュバスターを追加したいのですが、上記の構文を使用してそれを行う方法がわかりません。
私はいくつかのバリエーションを試しました:
/
しかし、require はではなくから client.js を取得しようとする/js
ため、404 が発生します。
私も追加してみました
にrequire.config
、しかしそれは効果がないようです。
にも同じ値を追加しようとしapp.build.js
ましたが、そこにある場合、r.js は js ファイルを連結しなくなり、それらを醜くします。
require.js データメイン スクリプト キャッシュをバストするための適切な構文は何ですか?
javascript - RequireJSの他のコードの前にAMDモジュールをロードしていませんか?
他のモジュールがロードされる前に、AMD 以外のモジュールをロードするにはどうすればよいですか? console.x 用の shim がありますが、何よりもまずこれをロードするのに問題があります。
また、条件が true の場合にのみロードしたいので、この場合はコンソール シムであるため、「コンソール」が定義されていないかどうかをテストし、条件が true の場合にのみコンソール シムをロードします。
私は RequireJS を使用しており、Modernizr も手元に持っていることに注意してください。
ありがとう。
javascript - AMD/Dojo 1.7 シングル ページ アプリ: Require() をどこに置くか?
Dojo 1.7/AMD ローダー構文に移行する大規模な単一ページ アプリがあります。
すべてをロードするメインの JSP と、動的コンテンツの生成に使用される多数の JSP ページがあります。
アプリケーション全体に require(){} ブロックを追加するのと、必要なモジュールの各インスタンスの周りに追加するのとでは、どちらが設計上の決定として適切でしょうか?
それとも何かの組み合わせ?最も一般的な require() をメイン ページに追加してから、ラップする必要がある他のインスタンスを探しますか?
javascript - js パスが認識されないようにする必要があります
RequireJS 2.0.2 を使用しています
エントリポイントとして使用されるファイルに次のものがあります。
ただし、「jquery」のみを認識し、他のパスは認識しないため、次のエラーが返されます。
....考え?
どうもありがとう。