2016-06-18 17 views
0
function global(){ 

} 

私は2ページあり、どちらもグローバル機能を持​​つglobal.jsを含んでいます。私は特定の理由で両方の場所でglobal()を実行する必要があります、それを2回発射するのを防ぐ方法は?ページ1のように、レイアウトは常にglobal()を最初に実行します。だからグローバルが既に起動している場合は、2ページ目を訪れたときに再度トリガしないでください。3,4,5などはレイアウトのglobal()を実行して衝突しません。私の心配は2ページ目です。限り、あなたのJSファイルは一度だけロードされると、次の操作を行うことができが2回発砲する機能を回避する

+1

私は、ページがリロードされるにつれて、すべてのスクリプトが2度の発射について何の問題もないことを心配していません。すでに何をしているのか教えてください。 –

+0

ページが独立してロードされている場合、 'global()'が2回実行されることをなぜ気にするべきですか?そうしないと、ページ2の関数を最初に呼び出すことを防ぐことができます。 – Terry

+0

@AkshayKhandelwal私は2 jsファイルを持って、1つはレイアウトです、1つは子供です。私は両方のファイルでglobal()を実行する必要があります。 –

答えて

1

あなたはちょうどあなたがオブジェクトと同じように、関数にプロパティを割り当てることができます。

以下の例では、デフォルト値のfalseexecutedというプロパティを追加します。 executedは、関数の内容が実行されるときにtrueに設定されるため、次回関数が呼び出されるときに、ifステートメントは関数がすぐに戻ることを確認します。

function global() { 
 
    if (global.executed) { 
 
    return; 
 
    } 
 
    global.executed = true; 
 
    // your code here ... 
 
} 
 
global.executed = false;

両方のページが独立してJSファイルを読み込む場合は、あなたは関数がlocalStorageでは、クッキー内、または、サーバ上の例えば、どこかの静的呼び出された場合に覚えておく必要があります。

+0

今や意味をなさない。ありがとう。 –

関連する問題