問題タブ [load-order]
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.
node.js - モデルのブートストラップ中の読み込み順序
私のエクスプレスアプリでは、モデルを次のようにロードします
A と B の 2 つのスキーマがありmongoose.Schema("B")
、最初は A が呼び出していました。それは今まで完璧に機能していました。私は得るMissingSchemaError: Schema hasn't been registered for model "B"
。b/c A が B の前にロードされたと思います。では、ロード順序でモデルをブートストラップする方法はありますか? .
javascript - Meteor JS では、DOM のロード順序に関連して Javascript のロード順序を制御する方法は? アニメーション用
ダウンロードしたテンプレートがあります。
http://halibegic.com/projects/merlin/
Meteor で使用したいのですが、大きな問題があります
444行目の一番下で、正しい順序でロードされていません。ページが読み込まれると、この js ファイルで指定された 4 つの機能はいずれも機能しません。
initNavbar();
initPortfolio();
initAnimations();
initTwitterFeed();
すべての css、フォント、画像、および js ファイルがpublic
フォルダーにあり、それらはすべて HTML で正しく参照されています。それらは、他の何よりも先にロードされるディレクトリにはありません。lib
DOMがロードされる前にスクリプトが何らかの形でロードされているためだと思います。そのため、適用するDOMがありません。
私が試したこと:
script.js
toの名前を変更し、main.js
444 行目を<script src="assets/js/main.js"></script>
アニメーションに変更しても、まだ動作しません。これをスクリプト ファイルに追加しても、正しく読み込まれません。
$(document).ready(function () { initNavbar(); initPortfolio(); initAnimations(); initTwitterFeed(); });
できます
Template.layout.rendered/created = function () { add in all the function code and call them here }
しかし、これは信じられないほど、信じられないほど面倒で非効率的な方法のようです。コードではなく、個々のファイルの読み込み順序を指定する必要があります。このテンプレートには約 5 つの .js ファイルがあり、それらのコードを切り取ってすべてを 1 つの
Template.layout.rendered/created
関数に貼り付ける必要はありません。
javascript - main.* 内の Meteor JS JavaScript ファイルは、まだ正しくロードされません。読み込み順序のベスト プラクティスは?
過去 2 週間、私は Meteor プロジェクトを構築してきました。Meteor を使用して苦労したことのある人から、ロード順序について考えてもらいたいと思います。
次のテンプレートを使用します。
http://bootstrapaste.com/free-one-page-bootstrap-template-amoeba/
すべての重要な JavaScript ファイルは、index.html の下部で参照されます。これを Meteor プロジェクトに移植しようとすると、すべての効果とアニメーション、特にmain.js
単純に script タグを一番下に置いておくと、大量の JavaScript および jQuery アニメーションが機能しないことを意味します。これは、Meteor では、DOM が完全にロードされる前に JS ファイルがロードされる可能性があるためです。そして、これは多くのものを壊します。
Meteor では、main.* という名前のファイルはすべて、他のすべてのファイルの後にロードされます。
これは、main.* が他のすべての後にロードを開始することのみを意味しているように見えることに注意してください。ファイルのロードがいつ終了するかについては何も言いません。のスクリプトはmain.js
まだ機能しません。
すべてのスクリプト タグを独自のものにして、main.html
それをindex.html
テンプレートとして添付すると、アニメーションはまだ機能しません。
私はもう試した
Template.layout.created = function() { $('head').append(''); }
これもうまくいきません。
- Meteor.startup( func ) の使用は信じられないほど信頼性が低く、「クライアントでは、DOM の準備が整うとすぐに関数が実行される」にもかかわらず、Meteor の「DOM 準備完了」の定義は「DOM 内のすべてがロードされた後」と等しくないためです。 " そのため、DOM が完全にロードされていない後でも関数を実行できます。
とにかく、Meteor でこのような大きな問題を抱えている人は他にいますか? また、ベスト プラクティスや回避策はありますか?
javascript - Meteor の CSS および JavaScript ファイルの読み込みのベスト プラクティス
TL、DR: アルファベット順に関する Meteor の仮定とは無関係に css および javascript ファイルをロードする方法 (実際の動作とはかけ離れています)。
Stackoverflow は、この質問は主観的かもしれないと言っていますが、そうでないことを願っています。
Meteor はアルファベット順 (およびその他の規則) に基づいてファイルをロードします。
したがって、強制的に CSS ファイルと JS ファイルを希望の順序でロードするには、ロード順序を示す数字でフィールドを開始する必要がありました。jquery.js
とがある場合bootstrap.js
、Meteor は のbootstrap.js
前にロードされますjquery.js
。ただし、ブートストラップは jquery に依存するため、jquery を最初にロードする必要があります。
これを解決するためのオプションは次のとおり
です。 1. ファイルをpublic
ディレクトリに配置し、手動でロードします。text/html
しかし、Meteor がMIME タイプのファイルを送信しているように見えるため、これは機能しませんでした。
2. Meteor パッケージを作成し、そこからロード順序を指定します。これは、CSS と Javascript をロードするためだけにハエをハンマーで叩くようなものだと思います。
3. すべてのファイルの前に番号を付けます。前の例では、ブートストラップの前に jquery をロードするために、フィールドの名前を1.jquery.js
andに変更2.bootstrap.js
しました。
私はMeteorを初めて使用するので、これに関する推奨されるベストプラクティスがあるかどうか疑問に思っています. javascriptにAMDを使おうと思っていたのですが、それはjavascriptに限られています。
javascript - 私のJavaScriptが順番にロードされていません
私は夢中になっていると思います。私のすべての検索は、これを適切に行っていることを示していますが、まだ反対の結果が得られています。私は2つのスクリプトを持っています。1 つ目はライブラリ (RecordRTC) で、2 つ目はライブラリを使用した JavaScript です。何をしても、スクリプトが最初に読み込まれ、ライブラリが 2 番目に読み込まれます。そして、ブラウザはこれが真実であることを(タイムラインに)表示し続け、スクリプトは「RecordRTCが定義されていません」というエラーを表示し続けます-スクリプトがライブラリをロードする前に呼び出していることを示します。
以下は、私が使用しているすべてのhtmlコードです。助けを送ってください。
javascript - grunt-contrib-concat: 連結する最後のファイルを指定しますか?
grunt-contrib-concat を使用して、すべてのカスタム JS ファイルを連結し、IIFE でラップしています。ロード順序の問題が発生しています (つまり、初期化ファイルがいくつかのモジュールの前に実行され、未定義のエラーが発生します)。連結順序で LAST にするinit.js
必要があることを指定したいのですが、他のすべての JS ファイルの順序も指定したくありません。この特定のファイルが最後になるだけです。
これが私のconcatの現在の設定です:
プロジェクトに余分な grunt モジュールを追加せずに、連結する最後のファイルを指定するにはどうすればよいですか?