2016-05-22 17 views
0

私は、彼のajaxリクエストがページ初期リクエストにロードされたメソッドに依存するインラインスクリプト(javascript)を返すことがあるウェブサイトを手に入れました。たとえば、ユーザにメッセージをポップするメソッドと、このメソッドを使用するajaxリクエストを考えてみましょう。ページにロードされた他のメソッドに依存するスクリプトをロードする

私の最初のページリクエストはこれらのスクリプトを非同期にロードするため、メインスクリプトのロードが完了する前にajaxリクエストが応答を返し、 'notify'メソッドがまだロードされていない可能性があります。これがロード完了したら?私は$(window).load()を使っていると思ったが、これは一度だけ起動すると思う。

+0

延期することとは対照的に、あなたが非同期を使用している任意の特定の理由は?あなたのスクリプトはメインページに依存しているので、遅延のように思えるでしょう。 – Tibrogargan

+0

@Tibrogarganあなたが興味があるなら、私はあなたのためにいくつかの理由を挙げることができます:) –

答えて

0

easest方法 - すべてのように何かをするにはロードされた非同期スクリプト:

(function() { 
function myModuleRun() { 
//do what module does 
} 

if (typeof window.myMainScriptLoaded === 'function') { 
    window.myModuleLoaded(myModuleRun); 
} else { 
    window.loadedQueue = window.loadedQueue || []; 
    window.loadedQueue.push(myModuleRun) 
} 
})(); 

メインスクリプトで:

window.myModuleLoaded(module) { 
    // do what you want to do when module loaded; 
} 

// use "for" loop, if you need to support older browsers. 
window.loadedQueue.forEach(window.myModuleLoaded); 
関連する問題