2016-06-28 14 views
-3

jqueryを使用して単一ページアプリケーションを構築しています。したがって、このようなサイドバーがあると仮定してください。jquery関数には一度だけ含まれますか?

dashboard.html 
order.html 

と私はそれをクリックするたびにajax経由でコンテンツを読み込みます。それはうまく動作しますが、私はスクリプトが2回以上ロードされたことに気付いています。これを解決するには?

+2

AJAXでHTMLコンテンツを読み込むだけで、メインページにのみスクリプトを読み込む必要があります。 – Barmar

+0

@Barmarいいえ、私のアプリが大きければ、それは競合するでしょう、あなたは一度にすべてをロードするのは無駄です。 –

+0

[JQUERYクラスでワンクリックできるだけ]の複製が可能です。(http://stackoverflow.com/questions/32616022/allow-just-one-click-in-class-jquery) –

答えて

1

スクリプトとHTMLを別々のファイルに保存します。次に、既にスクリプトを読み込んだかどうかを確認し、再度読み込まないでください。

var dashboard_js_loaded = false; 
$("#dashboard").click(function() { 
    $("#content").load("dashboard.html", function() { 
     if (!dashboard_js_loaded) { 
      $.getScript("dashboard.js", function() { 
       dashboard_js_loaded = true; 
      }); 
     } 
    }); 
}); 

おそらくrequire.jsのようなライブラリを使用して、これをより一般的に管理できます。または、オブジェクトにロードされたJSファイルを追跡する単純な関数を書くこともできます。

+0

絶対に正しいです。 +1 – gibberish

+0

はrequire.jsフレームワークなしでSPAを構築するために必要ですか? –

+0

@AliciaBrandon私はそれを自分で使ったことはないので、私はそうは思わない。しかし、私は各コ​​ンポーネントに異なるJSを必要とするSPAを書いていません。 require.jsのない – Barmar

関連する問題