問題タブ [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.

0 投票する
8 に答える
98839 参照

javascript - 動的にロードされたスクリプトを待機しています

私のページ本文では、AJAX呼び出しの結果として次のコードを挿入する必要があります。

ドキュメントが既に読み込まれているため使用できませ$.load()ん。イベントは発生しません。

これは安全ですか?そうでない場合は、カスタムで生成されたコードが実行される前に、jqueryスクリプトがロードされていることを確認するにはどうすればよいですか。

0 投票する
5 に答える
264667 参照

javascript - スクリプトのロードと実行の順序

HTML ページに JavaScript を含めるには、さまざまな方法があります。次のオプションについて知っています。

  • インライン コードまたは外部 URI からロード
  • <head> または <body> タグに含まれる [ 1 , 2 ]
  • なし、deferまたはasync属性を持たない (外部スクリプトのみ)
  • 静的ソースに含まれるか、他のスクリプトによって動的に追加されます (さまざまな解析状態で、さまざまな方法で)

ハードディスクからの browserscripts、javascript:URIs およびonEvent-attributes [ 3 ] を数えないで、JS を実行するための 16 の代替手段が既にあり、何かを忘れているに違いありません。

私は高速 (並列) 読み込みにはあまり関心がなく、実行順序 (読み込み順序とドキュメントの順序に依存する可能性があります) に興味があります。本当にすべてのケースをカバーする良い(クロスブラウザー)リファレンスはありますか? たとえば、 http ://www.websiteoptimization.com/speed/tweak/defer/はそれらのうちの 6 つだけを扱い、主に古いブラウザーをテストします。

ないのではないかと心配していますが、ここに私の具体的な質問があります。初期化とスクリプトの読み込み用の (外部) ヘッド スクリプトがいくつかあります。次に、本文の最後に 2 つの静的なインライン スクリプトがあります。1 つ目は、スクリプト ローダーが別のスクリプト要素 (外部 js を参照) を本体に動的に追加できるようにします。静的なインライン スクリプトの 2 番目は、追加された外部スクリプトからの js を使用する必要があります。もう一方が実行されたことに依存できますか (そしてその理由:-)?

0 投票する
1 に答える
315 参照

ruby-on-rails - Railsのどのコードが実行時に評価されないか(つまり、ActiveRecordスコープなど)

ActiveRecordスコープで現在の日付を評価しようとすると、実行時ではなくアプリケーションコードがロードされたときに評価されるため、正しくない可能性があります。次のように、これをラムダでパススルーする必要があります。

scope :today, lambda { where(:submitted_at => Date.today.to_time.utc..(Date.today + 1).to_time.utc) }

時間への変換が発生するため、これはファンキーな例です。とにかく、私の質問は、これが他にどこに懸念があるのか​​ということです。ActiveRecordスコープは、実行時に評価されていないDateへの呼び出しを信頼できる唯一の場所ですか?

0 投票する
1 に答える
388 参照

jquery - GrailsでのjQueryの前のjQueryサブプラグインのロード

jQueryとCycleプラグインを既存のアプリケーションと統合しようとしています。しかし、JavaScriptコードのロード順序に関して問題が発生しています。具体的には、サイクルjavascriptがjqueryライブラリの前にロードされています。

ページに3つのスクリプトを次の順序で定義しています

ただし、Firebugの[NET]タブによると、最初にサイクルプラグインが読み込まれ、次にスクリプトjavascriptコードが読み込まれ、次にjqueryライブラリが読み込まれます。最終結果は、スライドショーの最初の画像が表示されていることですが、トランジションは発生していません。

ロード順序を変更するにはどうすればよいですか?

0 投票する
4 に答える
12031 参照

ruby-on-rails - gem で ApplicationController を拡張するにはどうすればよいですか?

Rails 3.x の gem で ApplicationController を拡張する巧妙な方法を思いつきました。

私の宝石lib/my_namespace/my_controller.rbには、次のものがありました。

ただし、Gem が読み込まれると、app/controllers/application_controller.rbまだ読み込まれていないため、失敗します。

回避策として、gem で ApplicationController を次のlib/gem_namespace/application_controller.rbように定義しました。

そこで定義したとしても、拡張したアプリケーションのコントローラーとapp/controllers/application_controller.rb拡張したコントローラーの両方が、で定義された ApplicationController を直接的または間接的に拡張するように、Rails 3 アプリケーションの で再定義されると想定しました。ApplicationControllerMyNamespace::MyControllerapp/controllers/application_controller.rb

しかし、gem をロードした後、拡張するコントローラーが でApplicationController定義されたメソッドにアクセスできないことに気付きましたapp/controllers/application_controller.rb。また、ApplicationHelper (app/helpers/application_helper.rb)モジュールは他のヘルパー モジュールによって読み込まれなくなりました。

and to を定義し、クラスの名前にアクセスして、関連するモデルのクラスを決定し、そのメソッド内で保存して使用できるようにApplicationControllerするために、gem のコントローラー内で拡張するにはどうすればよいですか?before_filterafter_filterinitialize

2012/10/22 更新:

これが私が思いついたものです:

lib/your_gem_name/railtie.rb

とでlib/your_gem_name/controller.rb

0 投票する
1 に答える
97 参照

javascript - Jquery のタイミングの問題

現在、ハンドルバー テンプレートを div に追加しています。これをコードで使用したい -

そのクラスにマウスを置いたときに同じ行をログに記録し、画面に内容を返すため、onScreenが機能することを知っています。これは、追加先の div にあるものに slideUp() があるために発生しています。これを知っているのは、slideDown() を実行すると、行が正しく内容を返すからです。

どうすればこれを回避できますか? slideUp が終了したときにリッスンできるイベントはありますか?

編集-

Jquery slideUps コールバックも使用してみましたが、まだ役に立ちません -

0 投票する
1 に答える
540 参照

java - jUnit:s @BeforeClass の過去の static フィールドを取得する

の古典的な問題を回避する方法はありますか

交換以外

someValue が静的な場合。問題は、これがフレームワーク (拡張) 用であり、ユーザーが SomeInterface の実装を提供する必要があることです。

0 投票する
1 に答える
392 参照

magento - Magento: イベントが発生するまでヘッド ブロックの読み込みを遅らせる

私は2人のオブザーバーを持っています:

javascript を含むブロックを Head にロードしたいのですが、 Observerで収集されたデータをブロックに入力する必要があります。私の問題は、イベントが発生する前にブロックが読み込まれることです。これを証明するためにログを追加しました。

現時点では、レイアウト XML を使用してブロックを追加していますが、代わりにsetCatalogProductListingでプログラムで作成する必要がありますか、またはすべてのデータが利用可能になるまでロードされないようにする他の方法がありますか?

そして、ここでプログラムで作成することさえ可能ですか、それともこの時点で頭はすでにファイナライズされていますか?

前もって感謝します

0 投票する
1 に答える
486 参照

magento - Magento オブザーバーのロードオーダーの問題を解決する最善の方法は何ですか?

リスト ページの先頭に、そのページにリストされている製品の json 表現を含む javascript オブジェクトを挿入する必要があります。つまり、カテゴリ内のすべての製品ではなく、ツールバーによってページングされた製品のみです。

オブザーバーをcatalog_block_product_list_collectionに配置することでそのデータを取得できることがわかりましたが、これはヘッドブロックがレンダリングされた後であるため、ヘッドの子ブロックでそのデータを使用できません。

私が見る限り、2つの選択肢があります。

  1. JavaScript ブロックをフッターにロードし、jquery を使用してそれをヘッダーに挿入します。
  2. catalog_block_product_list_collection が呼び出される前に Magento が行ったことを解決し、モデルのロジックを再作成します。

経験豊富な Magento 開発者がジャンプする方法と、両方の手法の落とし穴について考えてみました。よろしくお願いします。