問題タブ [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 - AMD ローダーは内部でどのように機能しますか?
だから私はしばらくの間require.jsを使ってきましたが、実際にはそれが内部でどのように機能するのか分からないことに気付きました. AMDローダーだそうです。
CommonJS が同期的であることは理解しています。つまり、読み込み中に他のコードの実行がブロックされるということです。一方、AMD は非同期です。これは私が混乱するところです。
モジュールを定義するとき、コールバックを実行するために a、b、c をロードする必要があります。ここで非同期はどのように機能しますか?
- これら 3 つの依存関係を最初にロードする必要がある場合、同期ではありませんか?
- AMDがa、b、cを非同期にロードし、それらのファイルがロードされているかどうかを確認し(順序は気にしません)、コールバックを実行するということですか?
requirejs - ファイルがロードされているにもかかわらず、「ロードされていません」というメッセージを表示する必要があります
次のように定義されたモジュールがあります。
そのモジュールには、次のように変数を割り当てるloadViewというメソッドがあります。
View/Sidebar
したがって、両方とView/ControlBar
がdefine呼び出し(最初の引数)によってロードされていることがわかります。を使用するrequire('Sidebar')
とエラーは発生しませんが、使用するrequire('ControlBar')
と悪名高いものになります。
(http://requirejs.org/docs/errors.html#notloaded)
書き直し、コピーして貼り付け、Firebugなどに読み込まれていることを確認しましたが、このエラーが100%発生する理由を一生理解できません。
requirejs - AMD/RequireJsは特定のページに品位を追加します
requiere.jsを使用するときに特定のページスクリプトを使用しながら、サイトのすべてのページに対して「グローバル」スクリプトのように機能するメインスクリプトを作成する方法はありますか。
これはすべてのページで呼び出されます
他のページでは、別のmain.jsスクリプトを作成せずに、他の依存関係を追加したいと思います。
そうする方法はありますか?
編集:これまでのところかなりうまく機能しているように見える方法を見つけました:
他のアイデアはありますか?
javascript - Socket.io による非同期モジュール読み込み (AMD)
私はWebアプリケーションに取り組んでおり、SocketioでWebSocketなどをテストしています。現時点では、Socketio を使用した requierejs のようなソリューションを考えています。正常に動作しており、Javascript ファイルを読み込んで "new Function()" で解析できます (セキュリティ?)。ファイルを「通常」(スクリプト要素を使用) AMD でロードした場合、パフォーマンスは向上しますか?
ありがとう
javascript - バックボーンビューをデフォルトでシングルトンとして設定するにはどうすればよいですか?
すべてのBackbone.Viewは、最終状態で1回だけ使用されます。(アイテムビューを除く)。
現在、Backbone.Viewsをシングルトンとして次のように処理しています。
残念ながら、この小さな関数をリポジトリ内の各amdモジュールへの依存関係として追加するのはそれほど良いことではありません。
これを処理する別の方法はありますか?たぶん、ベースビュークラスを上書きしますか?
javascript - RequireJs: モジュールの順序が正しくありません
次のrouter.jsを取得しました:
ルーターは、requirejs 構成で最初の依存関係としてマークされている main.js ファイルで呼び出されます。
いくつかのビューで、私は今やりたい:
このエラーメッセージが表示されるよりも:
更新: 各モジュールに console.log を追加しました。したがって、モジュールが実行される順序はわかります。requirejs の順序が間違っていると言いました。
それ以外の:
これを解決する方法を見てみましょう
更新 2: ルーター イベント バインディング部分を setTimeout ループにラップしました。
そして、それが機能することを確認してください!
これは本当に単なる修正ですが、それでも修正です:)
javascript - RequireJS、Coffeescript、RevealingModulePatternの適切な使用
以下に、RequireJSを使用して関数を定義するCoffeescriptコードを定義しました。
それは以下を生成します:
私が抱えている問題は、Coffeescriptコードから生成される自己実行関数にあると思います。これにより、追跡できない可能性のある問題が発生しますか?またはこれは適切ですか。
ありがとうございました。
javascript - 空/欠落した依存関係を持つ定義コールバックを実行する Dojo AMD ローダー
私は Dojo (1.7) の初心者であり、私がばかであることを受け入れたいと思っています (そうでないことを願っています)。私は AMD 用の require.js を使用する方が快適ですが、Dojo を強制して AMD を使用するサードパーティ (ESRI) マッピング API を使用しているため、require.js も使用しようとすると厄介なエラーが発生します。
Backboneとdefine
Underscore に依存するモジュールがあります (最終的には Dojo の MVC を使用する可能性がありますが、この問題は Backbone に固有のものではないと思うので、解決したいと思います)。奇妙なことに、Dojo はdefine
モジュールのロード時に my 内でコールバックを実行しているように見えますが、この時点で依存関係 (アンダースコアとバックボーン) は空のオブジェクトです{}
。return Backbone.View.extend...
Backbone のView
プロパティが存在しないため、コールバック内でエラーが発生します。
Backbone が Underscore に依存していることはわかっていますが、これまでのところ、ハッキーに見える を使用せずに Underscore が最初に読み込まれるようにする方法がわかりませんrequire({async:0},['test1.js','test2.js'...
。ただし、この場合、アンダースコアも空のオブジェクトであるため、define
いずれかの依存関係がロードされる前に のコールバックが実行されます???
EDITこのエラーが発生する前に、コンソールにアンダースコアとバックボーンの両方のHTTPリクエストと200のレスポンスが表示されるため、それらの参照に問題はないと思います。
何か具体的な...
index.html:
app.js:
メインビュー.js:
ここで何が起こっているのか誰か教えてください。また、Backbone の前に Underscore をロードするための別の提案があれば、本当に役に立ちます!
javascript - RequireJS を使用して JavaScript で AMD を実装する
私は RequireJS にまったく慣れていないので、まだそれを回避する方法を見つけようとしています。私は完全に正常に機能していたプロジェクトを持っていたので、RequireJSを使用することにしたので、めちゃくちゃにしました:)
それはさておき、RequireJS と、それがどのようにすべてを把握するかについていくつか質問があります。scripts フォルダー内にファイル階層があります。
_Layout.cshtml
ファイル内に次の行があります。
そして、ここに私のbootstrap.jsファイルがあります:
次に、define
関数を使用してモジュールを実装しました。例は pubsub モジュールです:
基本的に、すべての JavaScript ファイルに対して同じことを行いました。pubsub モジュールを含む実際のファイルはフォルダーjquery.pubsub.js
内にあることに注意してください。/Scripts/utils
これは他のモジュールでも同様です。
アップデート:
わかりました。シムとは何か、なぜシムを使用する必要があるのか を理解したと思うので、ブートストラップ ファイルを更新しました。しかし、それはまだ私にとってはうまくいきませんが、私はそれらを正しくするのに問題を引き起こしたと思われるすべてのパスも宣言しました. 問題は、ブートストラップ ファイル内のコールバックにも入っていないということですrequire
。そのため、モジュールを構成または定義する方法にまだ問題があると思いますか?
javascript - requireJSを使用してモジュール変数にアクセスするにはどうすればよいですか?
私はしばらくJavascriptを使用していて、モジュールとrequireJSを初めて使用しようとしましたが、新しいデザインパターンに頭を悩ませることは困難です。
これが私の最初の試みです:
およびtestModule.js
これは0を返し、私は11を期待していました。何が欠けていますか?
もちろん、これは単純化された例でもあります。複数のオブジェクトを作成したいのですが、それぞれが独自の変数を状態に保つ必要があります。たとえば、モジュールにリストをコンテナに追加するDIV
だけでなく、そのリストにデータを追加、クリア、またはクエリする関数を含める場合、各実装が独自の状態を維持するようにモジュール関数をどのように構造化する必要がありますか。
ありがとう