2011-02-24 10 views
1

私は動的にjs関数を追加しようとしているので、$.getScript()について読んでいます。私が間違っていると私を訂正しますが、$.getScript()はすでにパブリックフォルダにある.jsファイルを呼び出すだけで、 "ロード"して使用できるようになりますが、jsファイル自体が呼び出されるだけです静的なjs。私がしようとしているのは、動的なjsスクリプトを呼び出すことです。このjsスクリプトの内容はかなり変更されるため、サーバーから来ている必要があります。

  • これは$.getScript()単独ではできないと思いますか?
  • もしそうでなければ、私は関数の構文を返すajaxを作成することができますが、それをどういうわけか現在のjsに追加するにはどうすればいいですか?
  • 私は後で新しいjsを削除したいと思うかもしれませんが、それは優先事項ではありません。

$.getScript()$.getScript()と.ajaxというコンビネーションでこれを助けることができますか?

+0

あなたは、動的スクリプトを提供するためには何を使っている限り、そのファイルの出力としてだけで正常に動作しますか? –

+0

@Pekka js関数 'function test(){}'を作成し、PHPサーバからこのスクリプトを返します。 .jsファイルとして返す必要があるのか​​、関数定義のテキストとして返す必要があるのか​​はまだはっきりしていませんが、両方とも必要に応じて実行できます。 – twitter

+1

は、PHPファイルを指すだけで、ファイルの拡張子は無意味です。 –

答えて

3

Pekkaさんのコメントは正しいです - jqueryはファイルの拡張子が何であるか気にしません。

$ .getScript(「dynamicScript.php」)は、有効なスクリプト(何のスクリプトタグは必要ありません)

+0

このファイルを呼び出すと、jsのコンテンツはどこかに保存され、サイトで利用できるようになりますか、必要なときに毎回呼び出す必要がありますか? – twitter

+0

関数や変数などは、暗黙的にもスコープによっても破壊されない限り、実行時にメモリに格納されます。オブジェクト指向のパターンを使用している場合、例えば、あなたのスクリプトは 'window.APP = {...}'のようにオブジェクトリテラルを返します。それは破棄されるまで残りのセッションで利用可能でなければなりません。すべてのコール状況ですべてのユーザーにロードする必要があります。デフォルトではキャッシュされません。 –

関連する問題