4

私は Web 開発にほとんど慣れておらず、Javascript/jQuery に直面しています。HTMLページでスクリプトがどのように実行されるかを理解したいと思います。私は C/Java プログラマーであり、これらの言語への参照が役に立ちます。ページが読み込まれた後にスクリプトを実行したい場合は、ヘッダーまたは本文の最後にスクリプトを挿入できることを理解しました。DOM イベントによって関数を呼び出すことができることを知っています (イベントを割り込みシグナルに関連付けます)。私が知りたいのは、次のようなスクリプトかどうかです。

<script type="text/javascript">
//<![CDATA[
var i=10;
if (i<5)
  {
  // some code
  }
//]]>
</script>

body または head 要素内の は、1 回だけ実行されるか、連続して実行されます。jQuery は Javascript と同じように動作しますか? プラグインはどうですか?それらはページが表示されている間ずっと生きていますか (並列スレッドのように)、またはイベント駆動型 (クリック/サイズ変更などによって、またはタイマーを使用して呼び出されます) ですか? これは非常に一般的な質問であり、おそらく数行では説明できないことはわかっていますが、基本的な説明といくつかのドキュメントへのリンクをいただければ幸いです。

ありがとうございました!

4

4 に答える 4

5

jQuery は JavaScript で書かれた単なるライブラリであり、主に DOM 操作と AJAX リクエストの処理を簡素化します。JS の仕組みを理解したい場合は、jQuery のことはしばらく忘れてください。

スクリプトの実行について: ブラウザーは HTML を解析し、そこから DOM を作成します。ブラウザが<script>タグとそのコンテンツを検出すると、そのタグの DOM 要素を作成し、それをツリーに追加してコードを実行します。次に、次のタグの解析を続行します。これは、コードが 1 回だけ実行されることを意味します。
解析中にスクリプトを実行する理由は、スクリプトがすでに HTML をすぐに操作できるため (たとえば、document.write(良い習慣ではありません))、パーサーが解析する必要があるものを変更できるためです。deferドキュメントが完全に解析されるまで、属性を使用してスクリプトの実行を遅らせることができます(これまでライブ コードで属性をあまり見たことがありませんでした)。

すべてのscriptタグは同じスコープを共有し、グローバル スコープと実行環境は、移動するかページをリロードするまで持続します。したがって、一方のスクリプトで変数を定義し、もう一方のスクリプトで変数にアクセスすることは完全に有効であり、実際、jQuery などのライブラリをページに含めるときに行っていることです。

<script>
    var foo = 'bar';
</script>
<!-- other HTML code -->
<script>
    alert(foo);
</script>

sに関する HTML ドキュメントがscript役立つ場合があります。

于 2013-01-10T01:24:05.277 に答える
3

スクリプトは、ページにロードする他のものと同じように、上から下に 1 回実行されます。ただし、そのロードの一部は、イベント ハンドラーの登録などを含む、DOM (Document Object Model、または Web ページのブラウザーの内部表現) と対話することになります。その後、クリック、AJAX 応答などのイベントが JS 関数をトリガーできます。

Java UI の開発に慣れている場合は、コールバックとイベント ベースのプログラミングに慣れているでしょう。手続き型コーディングに慣れている場合は、少し学習曲線が長くなります。

于 2013-01-10T01:18:26.987 に答える
2

上記のコードは1回だけ実行されます。

jQueryはjavascriptベースであり、もちろん、javascriptと同じように動作します。jQueryを使用すると、JavaScriptが簡単になり、ブラウザー固有の問題も処理されます。

Javascriptコードは、例のように記述されている場合、実行時に実行されますが、イベント駆動型の場合もあります。コードの結果のライフサイクルは、ブラウザーページを更新するまで残ります。タイマーを使用している場合、JavaScriptのライフサイクルも継続する可能性があります。

于 2013-01-10T01:20:22.280 に答える
1

後でイベントによって呼び出すことができる関数とオブジェクトを作成するだけのスクリプトもあれば、ページの読み込み時に実際に DOM に対して何かを実行するスクリプトもあれば、リスナーを登録するだけのスクリプトもあります。

jQuery とそのプラグインは、後でイベント ハンドラーによって呼び出すことができるオブジェクト/関数を作成するだけです。

于 2013-01-10T01:37:52.280 に答える