問題タブ [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.
javascript - 動的にロードされたスクリプトを待機しています
私のページ本文では、AJAX呼び出しの結果として次のコードを挿入する必要があります。
ドキュメントが既に読み込まれているため使用できませ$.load()
ん。イベントは発生しません。
これは安全ですか?そうでない場合は、カスタムで生成されたコードが実行される前に、jqueryスクリプトがロードされていることを確認するにはどうすればよいですか。
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 を使用する必要があります。もう一方が実行されたことに依存できますか (そしてその理由:-)?
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への呼び出しを信頼できる唯一の場所ですか?
jquery - GrailsでのjQueryの前のjQueryサブプラグインのロード
jQueryとCycleプラグインを既存のアプリケーションと統合しようとしています。しかし、JavaScriptコードのロード順序に関して問題が発生しています。具体的には、サイクルjavascriptがjqueryライブラリの前にロードされています。
ページに3つのスクリプトを次の順序で定義しています
ただし、Firebugの[NET]タブによると、最初にサイクルプラグインが読み込まれ、次にスクリプトjavascriptコードが読み込まれ、次にjqueryライブラリが読み込まれます。最終結果は、スライドショーの最初の画像が表示されていることですが、トランジションは発生していません。
ロード順序を変更するにはどうすればよいですか?
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 アプリケーションの で再定義されると想定しました。ApplicationController
MyNamespace::MyController
app/controllers/application_controller.rb
しかし、gem をロードした後、拡張するコントローラーが でApplicationController
定義されたメソッドにアクセスできないことに気付きましたapp/controllers/application_controller.rb
。また、ApplicationHelper
(app/helpers/application_helper.rb)
モジュールは他のヘルパー モジュールによって読み込まれなくなりました。
and to を定義し、クラスの名前にアクセスして、関連するモデルのクラスを決定し、そのメソッド内で保存して使用できるようにApplicationController
するために、gem のコントローラー内で拡張するにはどうすればよいですか?before_filter
after_filter
initialize
2012/10/22 更新:
これが私が思いついたものです:
でlib/your_gem_name/railtie.rb
:
とでlib/your_gem_name/controller.rb
:
javascript - Jquery のタイミングの問題
現在、ハンドルバー テンプレートを div に追加しています。これをコードで使用したい -
そのクラスにマウスを置いたときに同じ行をログに記録し、画面に内容を返すため、onScreenが機能することを知っています。これは、追加先の div にあるものに slideUp() があるために発生しています。これを知っているのは、slideDown() を実行すると、行が正しく内容を返すからです。
どうすればこれを回避できますか? slideUp が終了したときにリッスンできるイベントはありますか?
編集-
Jquery slideUps コールバックも使用してみましたが、まだ役に立ちません -
java - jUnit:s @BeforeClass の過去の static フィールドを取得する
の古典的な問題を回避する方法はありますか
交換以外
と
someValue が静的な場合。問題は、これがフレームワーク (拡張) 用であり、ユーザーが SomeInterface の実装を提供する必要があることです。
magento - Magento: イベントが発生するまでヘッド ブロックの読み込みを遅らせる
私は2人のオブザーバーを持っています:
javascript を含むブロックを Head にロードしたいのですが、 Observerで収集されたデータをブロックに入力する必要があります。私の問題は、イベントが発生する前にブロックが読み込まれることです。これを証明するためにログを追加しました。
現時点では、レイアウト XML を使用してブロックを追加していますが、代わりにsetCatalogProductListingでプログラムで作成する必要がありますか、またはすべてのデータが利用可能になるまでロードされないようにする他の方法がありますか?
そして、ここでプログラムで作成することさえ可能ですか、それともこの時点で頭はすでにファイナライズされていますか?
前もって感謝します
magento - Magento オブザーバーのロードオーダーの問題を解決する最善の方法は何ですか?
リスト ページの先頭に、そのページにリストされている製品の json 表現を含む javascript オブジェクトを挿入する必要があります。つまり、カテゴリ内のすべての製品ではなく、ツールバーによってページングされた製品のみです。
オブザーバーをcatalog_block_product_list_collectionに配置することでそのデータを取得できることがわかりましたが、これはヘッドブロックがレンダリングされた後であるため、ヘッドの子ブロックでそのデータを使用できません。
私が見る限り、2つの選択肢があります。
- JavaScript ブロックをフッターにロードし、jquery を使用してそれをヘッダーに挿入します。
- catalog_block_product_list_collection が呼び出される前に Magento が行ったことを解決し、モデルのロジックを再作成します。
経験豊富な Magento 開発者がジャンプする方法と、両方の手法の落とし穴について考えてみました。よろしくお願いします。