静的ページ javascript
要素に達した後も HTML コンテンツのダウンロードを続行するようブラウザーに指示します。, 注: 外部のケースでは、defer 属性が問題を解決したため、DOMContentLoaded イベントを使用する必要はありませんでした。defer は外部スクリプトに対してのみ機能するため、内部の例では defer による解決策を使用しませんでした。, この問題に対する昔ながらの解決策は、すべての HTML が解析された後に読み込まれるように、body の下部に(たとえば
タグの直前に)script 要素を置くことでした。この解決策(および上記の DOMContentLoaded による解決策)の問題点は、HTML DOM が読み込まれるまでスクリプトの読み込みと解析が完全にブロックされることです。JavaScript がたくさんある大規模なサイトでは、これは大きなパフォーマンス上の問題を引き起こす可能性があり、サイトを遅くします。, 実際には、スクリプトのブロッキングの問題を回避できるモダンな機能が 2 つあります — async と defer(すでに見てきました)。これらの 2 つの違いを見てみましょう。, async 属性を使って読み込むスクリプトは(下記を見てください)、ページのレンダリングをブロックせずにスクリプトをダウンロードし、スクリプトのダウンロードが終了すると直ちに実行します。複数のスクリプトが特定の順序で実行されるという保証はありませんが、ページの残りの部分の表示を停止することはありません。ページ内のスクリプトが互いに独立して実行され、ページ上の他のスクリプトに依存しない場合は、async を使用することをお勧めします。, スクリプトが読み込まれる順序に依存することはできません。jquery.js は script2.js と script3.js に前後して読み込まれます。この場合、jquery に依存するこれらのスクリプトの関数は、スクリプトの実行時に jquery が定義されないため、エラーを生成します。, 読み込むバックグラウンドスクリプトがいくつもあって、それらをできるだけ早く実行したい場合に async を使用するべきです。例えば、ゲームを実際に開始するときに必要になるいくつかのロードすべきゲームデータファイルがあるとして、今のところは、スクリプトのロードによってブロックされずに、ゲームのイントロ、タイトル、ロビーを表示したいだけ、という場合です。, defer 属性つきのスクリプト(下記のようなもの)は、ページに現れた順序でスクリプトを実行し、スクリプトとコンテンツがダウンロードされるとすぐにスクリプトを実行します。, defer 属性を持つすべてのスクリプトは、ページに現れた順序で読み込まれます。したがって、2番目の例では、jquery.js が script2.js と script3.js の前に読み込まれ、script2.js が script3.js の前に読み込まれることは確実です。ページコンテンツがすべて読み込まれるまでは、実行せず、これはスクリプトが DOM配置に依存している場合に便利です(例: ページの要素を変更する場合), HTML や CSS と同様に、JavaScript でもコード内にブラウザーが実行しない「コメント」を書くことができます。仲間の開発者 (または、6 カ月後のコードを忘れた自分自身) に対して動作方法を書くことができます。コメントはとても便利ですしたくさん書きましょう。大きなプログラムを書くのならなおのことです。コメントの書き方は 2 種類あります。, メモ: 一般的にコメントは多いほうが少ないよりも優れていますが、変数が何であるかを説明する (変数名はおそらくもっと直感的にするべきです) ため、または非常に単純な操作を説明する (コードが複雑すぎるかもしれません) ために、多くのコメントを追加する場合は注意が必要です。, さて、JavaScript の世界に足を踏み入れましたね。なぜ JavaScript を使い、何ができるのかということに慣れるため、まずは理論から始めました。進むにつれ、少しでしたが例を見て、何よりも JavaScript がどのようにウェブサイトの他のコードに組み込まれているかを学習しました。, JavaScript が少し大変だと思いましたか。でも心配は無用です。このコースを受講することで一歩ずつ、理解しながら前に進んで行きましょう。次の記事で、まっすぐに飛び込んで自分で JavaScript のページを作って実践に飛び込んでいきましょう。. 上のコード例では、内部の例と外部の例は、HTML body が解析される前に JavaScript が読み込まれてドキュメントの head で実行されています。これによりエラーが発生する可能性があるため、いくつかの構文を使用して回避しています。 Gatsbyの特徴. 2020年3月現在、静的ジェネレータ人気順が見れるサイト によると、Javascript 言語では Gatsby と Next.js が人気. ログインして、MDNアカウントの特典をお楽しみください。アカウントを作成していない場合は、ログイン後、作成を促されます。, Dynamic Websites – Server-side programming, Assessment: Structuring a page of content, From object to iframe — other embedding technologies, HTML Table advanced features and accessibility, Assessment: Typesetting a community school homepage, Making decisions in your code — Conditionals, Assessment: Adding features to our bouncing balls demo, General asynchronous programming concepts, Cooperative asynchronous JavaScript: Timeouts and intervals, Graceful asynchronous programming with Promises, Making asynchronous programming easier with async and await, CSS property compatibility table for form controls, CSS and JavaScript accessibility best practices, Assessment: Accessibility troubleshooting, React interactivity: Editing, filtering, conditional rendering, Ember interactivity: Events, classes and state, Ember Interactivity: Footer functionality, conditional rendering, Adding a new todo form: Vue events, methods, and models, Vue conditional rendering: editing existing todos, Setting up your own test automation environment, Tutorial Part 2: Creating a skeleton website, Tutorial Part 6: Generic list and detail views, Tutorial Part 8: User authentication and permissions, Tutorial Part 10: Testing a Django web application, Tutorial Part 11: Deploying Django to production, Express Web Framework (Node.js/JavaScript) overview, Setting up a Node (Express) development environment, Express tutorial: The Local Library website, Express Tutorial Part 2: Creating a skeleton website, Express Tutorial Part 3: Using a database (with Mongoose), Express Tutorial Part 4: Routes and controllers, Express Tutorial Part 5: Displaying library data, Express Tutorial Part 6: Working with forms, Express Tutorial Part 7: Deploying to production, JavaScript とは何か、何ができるか、どのようにウェブサイトに適用できるかについて親しむ。, 連なった文字 (プログラミングでは「文字列」と呼ばれます) に対する操作。上の例では「Player 1: 」という文字列と, テキストエディターとウェブブラウザーでそのファイルを開いてください。クリックできるボタンが 1 つあるウェブページを作る HTML だということがわかりますね。, ファイルを保存してブラウザーを更新してください。ボタンを押す度に新しい段落が作られて、下に表示されるようになりましたね。, まず、先ほどの HTML ファイルと同じディレクトリーに新しいファイルを作ります。これを, HTML ファイルを保存して、ブラウザーを更新してください。同じページが見えますね! 同じように動いていますが、今回は外部の JavaScript ファイルです。コードを整理して、複数の HTML ファイルから再利用できるようにするには、このようにするのが良いでしょう。大きなスクリプトの塊がないほうが、HTML も読みやすくなります。. 静的サイトは、ホームぺージビルダーやシリウスなどのソフトが利用されることの多い、HTMLで作成したウェブサイトのことです。一方、動的サイトは、ワードプレスなどのCMSで作成され、PHPやJavaScriptで動くウェブサイトのことです。 WebクライアントがWebサーバーにRequestメッセージを送信 2. JavaScript はウェブページにて複雑な機能をできるようにするプログラミング言語です —ウェブページが読み込まれるたびに、単にあなたが見ている静的な情報を表示する以上のことをしています— 更新されたコンテンツの定期表示や、インタラクティブな地図や、2D/3D グラフィックのアニメーションや、ビデオジュークボックスのスクロールなど — たぶん JavaScript が組み込まれています。ウェブ技術をケーキだとするとこれは 3 つ目の層で、他の 2 つ (HTML と CSS) は学習エリアの他の部分でもっと詳し … システムから返されるのは静的ページ (HTML、CSS、JavaScript) のみであり、サーバー側の処理用の API は、それらのページから要求されます。 Instead, the system serves only static pages (HTML, CSS, and JavaScript), where those pages call upon your APIs for server-side work.
パズドラ 碇ゲンドウ フレンド,
上田麗奈 Empathy 感想,
功刀 意味,
岸田 血液型,
ミランダ 日ハム,
コナラ 高さ,
ナタリー バルテルミー,
スポットライト 世紀のスクープ 実話,
鬼 滅 アニメ化,
エヴァ Q 解説 2ch,
インフルエンザ迅速検査 偽陽性,
リス後ろ姿 イラスト,
受領 対義語,
シブヤノオト 動画,
パパドル 動画 4話,
ワンオクTaka 生い立ち,
東急ハンズ 電話番号,
錦戸亮 Dvd 中古,
大阪 東急ハンズ 大きい,
エール 梅役,
絶世の美女の絶世 なぜ 世を絶つ,
プリズ魔 怖い,
インフルエンザ 治り かけ 検査,
中枢 対義語,
流星の絆 あらすじ,
丸山隆平 高校 奈良,
用途 短文,
古畑星夏 インスタ,
仮面ライダー 俳優 売れない,
梅宮医院 梅宮辰夫,
高杉真宙 Tv 映画,
新規ログインがありました(safari On Iphoneより),
丁重 反対語,
十二使徒 裏切り者,
中村倫也 Youtube エプロン,
鬼 滅 の刃 15話 動画,
ラジオの時間 面白い,
ワニ先生 サイコパス,
ラジオ の時間 お たか さん,
穣 単位,
エヴァンゲリオン 英語,
比嘉愛未 ツイッター,
Arbre フランス語,
原因を探る 英語,
英語 反対語 カード,
花に関する フランス語,
ツイッター 電話番号 確認,
エヴァ 量産型,
気散じ ベンヤミン,
綾野剛 結婚 佐久間由衣,
エミリー シェフ の ブログ,
特許 明細書 書き方,
安田章大 ママベル,
めったにない 英語 Rarely,
普及 品 類語,
我妻善逸 声優,
シン エヴァンゲリオン劇場版 ⅱ ネタバレ,
細かい点まで調べ 訪ねること,
錦戸亮 親 鹿児島,
吾峠呼世晴 引退 デマ,
浜辺美波 本名,
鬼滅の刃最終回 つまらない,
エヴァパイロット 14歳 理由,
英語 同じ意味の単語 多い,
チケットぴあ ゆず 払い戻し,
アンハサウェイ ショート 映画,
内山昂輝 かわいい,
そもそも 例文 面白い,
中村倫也 イケメンパラダイス,
第三使徒 新劇場版,
どんぐり倶楽部 小学生,
供給 対義語,
義勇 身長,
中村倫也 舞台 2020,
インフルエンザ 検査 赤ちゃん,
画像 検索 フィードバックを送信,
競合 対義語,
オセルタミビル 飲 ませ 方,
アリシア ドゥヴァル,
Google 英英辞典,
中村倫也 作品 集,
" />
要素に達した後も HTML コンテンツのダウンロードを続行するようブラウザーに指示します。, 注: 外部のケースでは、defer 属性が問題を解決したため、DOMContentLoaded イベントを使用する必要はありませんでした。defer は外部スクリプトに対してのみ機能するため、内部の例では defer による解決策を使用しませんでした。, この問題に対する昔ながらの解決策は、すべての HTML が解析された後に読み込まれるように、body の下部に(たとえば タグの直前に)script 要素を置くことでした。この解決策(および上記の DOMContentLoaded による解決策)の問題点は、HTML DOM が読み込まれるまでスクリプトの読み込みと解析が完全にブロックされることです。JavaScript がたくさんある大規模なサイトでは、これは大きなパフォーマンス上の問題を引き起こす可能性があり、サイトを遅くします。, 実際には、スクリプトのブロッキングの問題を回避できるモダンな機能が 2 つあります — async と defer(すでに見てきました)。これらの 2 つの違いを見てみましょう。, async 属性を使って読み込むスクリプトは(下記を見てください)、ページのレンダリングをブロックせずにスクリプトをダウンロードし、スクリプトのダウンロードが終了すると直ちに実行します。複数のスクリプトが特定の順序で実行されるという保証はありませんが、ページの残りの部分の表示を停止することはありません。ページ内のスクリプトが互いに独立して実行され、ページ上の他のスクリプトに依存しない場合は、async を使用することをお勧めします。, スクリプトが読み込まれる順序に依存することはできません。jquery.js は script2.js と script3.js に前後して読み込まれます。この場合、jquery に依存するこれらのスクリプトの関数は、スクリプトの実行時に jquery が定義されないため、エラーを生成します。, 読み込むバックグラウンドスクリプトがいくつもあって、それらをできるだけ早く実行したい場合に async を使用するべきです。例えば、ゲームを実際に開始するときに必要になるいくつかのロードすべきゲームデータファイルがあるとして、今のところは、スクリプトのロードによってブロックされずに、ゲームのイントロ、タイトル、ロビーを表示したいだけ、という場合です。, defer 属性つきのスクリプト(下記のようなもの)は、ページに現れた順序でスクリプトを実行し、スクリプトとコンテンツがダウンロードされるとすぐにスクリプトを実行します。, defer 属性を持つすべてのスクリプトは、ページに現れた順序で読み込まれます。したがって、2番目の例では、jquery.js が script2.js と script3.js の前に読み込まれ、script2.js が script3.js の前に読み込まれることは確実です。ページコンテンツがすべて読み込まれるまでは、実行せず、これはスクリプトが DOM配置に依存している場合に便利です(例: ページの要素を変更する場合), HTML や CSS と同様に、JavaScript でもコード内にブラウザーが実行しない「コメント」を書くことができます。仲間の開発者 (または、6 カ月後のコードを忘れた自分自身) に対して動作方法を書くことができます。コメントはとても便利ですしたくさん書きましょう。大きなプログラムを書くのならなおのことです。コメントの書き方は 2 種類あります。, メモ: 一般的にコメントは多いほうが少ないよりも優れていますが、変数が何であるかを説明する (変数名はおそらくもっと直感的にするべきです) ため、または非常に単純な操作を説明する (コードが複雑すぎるかもしれません) ために、多くのコメントを追加する場合は注意が必要です。, さて、JavaScript の世界に足を踏み入れましたね。なぜ JavaScript を使い、何ができるのかということに慣れるため、まずは理論から始めました。進むにつれ、少しでしたが例を見て、何よりも JavaScript がどのようにウェブサイトの他のコードに組み込まれているかを学習しました。, JavaScript が少し大変だと思いましたか。でも心配は無用です。このコースを受講することで一歩ずつ、理解しながら前に進んで行きましょう。次の記事で、まっすぐに飛び込んで自分で JavaScript のページを作って実践に飛び込んでいきましょう。. 上のコード例では、内部の例と外部の例は、HTML body が解析される前に JavaScript が読み込まれてドキュメントの head で実行されています。これによりエラーが発生する可能性があるため、いくつかの構文を使用して回避しています。 Gatsbyの特徴. 2020年3月現在、静的ジェネレータ人気順が見れるサイト によると、Javascript 言語では Gatsby と Next.js が人気. ログインして、MDNアカウントの特典をお楽しみください。アカウントを作成していない場合は、ログイン後、作成を促されます。, Dynamic Websites – Server-side programming, Assessment: Structuring a page of content, From object to iframe — other embedding technologies, HTML Table advanced features and accessibility, Assessment: Typesetting a community school homepage, Making decisions in your code — Conditionals, Assessment: Adding features to our bouncing balls demo, General asynchronous programming concepts, Cooperative asynchronous JavaScript: Timeouts and intervals, Graceful asynchronous programming with Promises, Making asynchronous programming easier with async and await, CSS property compatibility table for form controls, CSS and JavaScript accessibility best practices, Assessment: Accessibility troubleshooting, React interactivity: Editing, filtering, conditional rendering, Ember interactivity: Events, classes and state, Ember Interactivity: Footer functionality, conditional rendering, Adding a new todo form: Vue events, methods, and models, Vue conditional rendering: editing existing todos, Setting up your own test automation environment, Tutorial Part 2: Creating a skeleton website, Tutorial Part 6: Generic list and detail views, Tutorial Part 8: User authentication and permissions, Tutorial Part 10: Testing a Django web application, Tutorial Part 11: Deploying Django to production, Express Web Framework (Node.js/JavaScript) overview, Setting up a Node (Express) development environment, Express tutorial: The Local Library website, Express Tutorial Part 2: Creating a skeleton website, Express Tutorial Part 3: Using a database (with Mongoose), Express Tutorial Part 4: Routes and controllers, Express Tutorial Part 5: Displaying library data, Express Tutorial Part 6: Working with forms, Express Tutorial Part 7: Deploying to production, JavaScript とは何か、何ができるか、どのようにウェブサイトに適用できるかについて親しむ。, 連なった文字 (プログラミングでは「文字列」と呼ばれます) に対する操作。上の例では「Player 1: 」という文字列と, テキストエディターとウェブブラウザーでそのファイルを開いてください。クリックできるボタンが 1 つあるウェブページを作る HTML だということがわかりますね。, ファイルを保存してブラウザーを更新してください。ボタンを押す度に新しい段落が作られて、下に表示されるようになりましたね。, まず、先ほどの HTML ファイルと同じディレクトリーに新しいファイルを作ります。これを, HTML ファイルを保存して、ブラウザーを更新してください。同じページが見えますね! 同じように動いていますが、今回は外部の JavaScript ファイルです。コードを整理して、複数の HTML ファイルから再利用できるようにするには、このようにするのが良いでしょう。大きなスクリプトの塊がないほうが、HTML も読みやすくなります。. 静的サイトは、ホームぺージビルダーやシリウスなどのソフトが利用されることの多い、HTMLで作成したウェブサイトのことです。一方、動的サイトは、ワードプレスなどのCMSで作成され、PHPやJavaScriptで動くウェブサイトのことです。 WebクライアントがWebサーバーにRequestメッセージを送信 2. JavaScript はウェブページにて複雑な機能をできるようにするプログラミング言語です —ウェブページが読み込まれるたびに、単にあなたが見ている静的な情報を表示する以上のことをしています— 更新されたコンテンツの定期表示や、インタラクティブな地図や、2D/3D グラフィックのアニメーションや、ビデオジュークボックスのスクロールなど — たぶん JavaScript が組み込まれています。ウェブ技術をケーキだとするとこれは 3 つ目の層で、他の 2 つ (HTML と CSS) は学習エリアの他の部分でもっと詳し … システムから返されるのは静的ページ (HTML、CSS、JavaScript) のみであり、サーバー側の処理用の API は、それらのページから要求されます。 Instead, the system serves only static pages (HTML, CSS, and JavaScript), where those pages call upon your APIs for server-side work.
パズドラ 碇ゲンドウ フレンド,
上田麗奈 Empathy 感想,
功刀 意味,
岸田 血液型,
ミランダ 日ハム,
コナラ 高さ,
ナタリー バルテルミー,
スポットライト 世紀のスクープ 実話,
鬼 滅 アニメ化,
エヴァ Q 解説 2ch,
インフルエンザ迅速検査 偽陽性,
リス後ろ姿 イラスト,
受領 対義語,
シブヤノオト 動画,
パパドル 動画 4話,
ワンオクTaka 生い立ち,
東急ハンズ 電話番号,
錦戸亮 Dvd 中古,
大阪 東急ハンズ 大きい,
エール 梅役,
絶世の美女の絶世 なぜ 世を絶つ,
プリズ魔 怖い,
インフルエンザ 治り かけ 検査,
中枢 対義語,
流星の絆 あらすじ,
丸山隆平 高校 奈良,
用途 短文,
古畑星夏 インスタ,
仮面ライダー 俳優 売れない,
梅宮医院 梅宮辰夫,
高杉真宙 Tv 映画,
新規ログインがありました(safari On Iphoneより),
丁重 反対語,
十二使徒 裏切り者,
中村倫也 Youtube エプロン,
鬼 滅 の刃 15話 動画,
ラジオの時間 面白い,
ワニ先生 サイコパス,
ラジオ の時間 お たか さん,
穣 単位,
エヴァンゲリオン 英語,
比嘉愛未 ツイッター,
Arbre フランス語,
原因を探る 英語,
英語 反対語 カード,
花に関する フランス語,
ツイッター 電話番号 確認,
エヴァ 量産型,
気散じ ベンヤミン,
綾野剛 結婚 佐久間由衣,
エミリー シェフ の ブログ,
特許 明細書 書き方,
安田章大 ママベル,
めったにない 英語 Rarely,
普及 品 類語,
我妻善逸 声優,
シン エヴァンゲリオン劇場版 ⅱ ネタバレ,
細かい点まで調べ 訪ねること,
錦戸亮 親 鹿児島,
吾峠呼世晴 引退 デマ,
浜辺美波 本名,
鬼滅の刃最終回 つまらない,
エヴァパイロット 14歳 理由,
英語 同じ意味の単語 多い,
チケットぴあ ゆず 払い戻し,
アンハサウェイ ショート 映画,
内山昂輝 かわいい,
そもそも 例文 面白い,
中村倫也 イケメンパラダイス,
第三使徒 新劇場版,
どんぐり倶楽部 小学生,
供給 対義語,
義勇 身長,
中村倫也 舞台 2020,
インフルエンザ 検査 赤ちゃん,
画像 検索 フィードバックを送信,
競合 対義語,
オセルタミビル 飲 ませ 方,
アリシア ドゥヴァル,
Google 英英辞典,
中村倫也 作品 集,
" />
静的ページ javascript
- User Documentation, https://tipsnote.github.io/gh-pages-sample/, Simpler GitHub Pages publishing - The GitHub Blog, Google Analyticsのイベントトラッキングでバナーのインプレッション数を計測する, 静的サイト (HTML や CSS, 画像など) を公開できます。JavaScript も動作します。. GitHub Pagesとは、GitHub による、静的サイトのホスティングサービスになります。GitHub のアカウントがあればすぐに静的サイトが公開できますので、非常にお手軽です。 2016年8月にアップデートされ、今までよりもさらに簡単に使えるようになりましたので、利用方法をまとめておきます。 Gatsby, Inc.(2015年設立)が開発、シリコンバレーにある. GraphQLと相性良い. Spring BootとThymeleafでLayoutを共通化する方法 2020-05-25 Spring BootとThymeleafでLayoutを共通化する方法です。 ThymeleafのLayoutは、Tilesのように共通レイアウトを定義する仕組みです。 © 2005-2020 Mozilla and individual contributors. Reactベース. ユーザー理解をクライアントと共有し、企業のビジネス目的を共に達成するパートナー型デジタルプロダクションです。, What is GitHub Pages? Content is available under these licenses. ではどのようにWebページを表示させているかについてですが、 例えば、ユーザーがGoogleで何か検索したいなと思った時、ブラウザ上のURL欄に https://www.google.comと入力してアクセスすると思います。 実際にアクセスしたらGoogleのページは一瞬で表示されますが、クライアントとサーバー間で見た場合、 ユーザーがGoogleのページにアクセスしようとする間に以下のようなやりとりが行われます。 1. この 3 層は素晴らしい構成です。例としてシンプルなテキストラベルを見てみます。HTML を使って構造と意図をマークアップできます: テキストラベルの最新バージョンをクリックしてみて、何が起きるのか見てみます (このデモは GitHub でも見られます— ソースコードを見るかライブ実行するか)!, JavaScript はそれ以上のことができます — もっと詳しく見てみましょう。, JavaScript は次のことを実現する一般的なプログラミング機能で構成されています。, さらにワクワクするのは、JavaScript からすぐに使えるように構築されている機能です。それは Application Programming Interface (API) と呼ばれ、JavaScript のコードにさらなる強力な力を与えてくれることでしょう。, API がなければ難しかったり、不可能であるようなコードを、すぐに使えるブロックのように、開発者がプログラムを作ることを可能にします。家を作るときの既製の家具と同じことを、プログラミングでしてくれるのです。自分で設計し、使用する木材を選定し、正しい形で板を切り出して、正しいサイズのネジを見つけて、自分で組み立てるよりも、既に切り出されたボードとネジを使って本棚を組み立てるだけの方がずっと簡単ですよね。, ブラウザー API はウェブブラウザーに組み込まれていて、コンピューターを取り巻く環境からデータを取り出したり、複雑で便利なことをしてくれたりします。例えば、, 注: 上記の多くは古いブラウザーでは動作しません。試すには Firefox、Chrome、Edge、Opera といったモダンなブラウザーを使うのがよいでしょう。プロダクションコードを提供する (顧客に実際のコードを納品する) 段になったら、クロスブラウザーテストを読んでみるとよいでしょう。, サードパーティ API はブラウザーには組み込まれておらず、さらに普通は Web上のどこかからそのコードと情報を探さなければなりません。例えば、, 注: このような API は先進的ですが、このモジュールでは扱いません。詳しく知りたければ Client-side web APIs module で扱っています。, ワクワクすることはもっとたくさんあります! ですが、まだ興奮しすぎないでください。24 時間程度の勉強だけでは、Facebook や Google マップや Instagram は作れません。まずはやらなければならない基本がたくさんあるのです。さあ、先に進みましょう!, まずは実際にコードを見てみましょう。そしてページで JavaScript を動かすと何が起きるのか見てみましょう。, ブラウザーをウェブページに読み込んだときの話を簡単に説明します (How CSS works の記事で最初に出てきました)。ウェブページをブラウザーで見たとき、実行環境 (ブラウザーのタブ) の中で、コード (HTML、CSS そして JavaScript) が実行されます。これは素材 (コード) を加工して製品 (ウェブページ) を出力する工場のようなものです。, JavaScript のごく一般的な用途は、(先ほど例示した) Document Object Model API を介して動的に HTML と CSS を変更し、ユーザーインターフェイスを更新することです。なお、ウェブドキュメント上のコードは通常、ページ上に現れる順序で読み込まれて実行されます。もし JavaScript がロードされ、影響を受ける HTML および CSS がロードされる前に実行しようとすると、エラーが発生する可能性があります。この回避策については、記事の後半の「スクリプトの読み込み方針」セクションで学習します。, ブラウザーのそれぞれのタブは、コードを実行するための入れ物を個別に持ちます (この入れ物を技術的用語では「実行環境」と呼びます)。つまり、それぞれのタブ内でコードは完全に分かれて実行されており、あるタブで動いているコードは他のタブや他のウェブサイトのコードに、直接的には干渉できません。これは良いセキュリティ対策です。互いに干渉することが出来てしまえば、Web の悪党たちは、他のタブで開いているウェブサイトから情報を盗み出したり、もっとひどいことをするためにコードを書き始めることでしょう。, 注: 他のウェブサイトや、タブに安全にデータや実行可能なコードを送る方法はあります。けれども、このコースでは扱わない高度な技術です。, ブラウザーが JavaScript のブロックを見つけたとき、たいていは先頭から最後に向かって順番に実行されます。つまりどの順番で実行されるかということに気を配らなければなりません。例えば、最初の例で見た JavaScript のブロックに戻りましょう。, このコードでは文章段落を選択して (1 行目)、イベントリスナーを登録して (3 行目) 段落がクリックされたとき、updateName() というコードブロック (5 行目から 8 行目) が実行されるようにしています。updateName() というコードブロック (再利用可能なコードブロックで「関数」と呼びます) は、ユーザーに新しい名前を尋ねて、表示内容を変更するため、段落にその名前を挿入します。, もし、最初の 2行を入れ替えた場合、動かなくなってしまいます。代わりにブラウザーの開発者コンソールに TypeError: para is undefined というエラーが出るでしょう。この意味は para オブジェクトがまだ存在しないため、イベントリスナーを設定できないということを表しています。, 注: これはとてもよくあるエラーです。オブジェクトに対して何かをする前にはそのオブジェクトへの参照が存在していることに気を配らなければなりません。, もしかしたら、インタープリタとコンパイルという用語をプログラミングの文脈で聞いたことがあるかもしれませんね。インタープリタでは、コードが上から下に実行されてコードの実行結果がすぐに返ってきます。ブラウザーが実行する前にコードを何らかの形に変換する必要はありません。コードはプログラマーに親しみやすいテキストで受け取って、それから直接処理されます。, 反対に、コンパイル言語はコンピューターで実行する前に他の形式に変換 (コンパイル) しなければなりません。例えば C/C++ は機械語にコンパイルされてから、コンピューターで実行されます。プログラムは、元のプログラムソースコードから生成されるバイナリーフォーマットで実行されます。, JavaScript は軽量なインタープリタ型プログラミング言語です。ウェブブラウザーは元のテキストの形で JavaScript コードを受け取り、それからスクリプトを実行します。技術的な見地からは、たいていの JavaScript インタープリタは just-in-time compiling というテクニックを使ってパフォーマンスを向上させています; スクリプトが使われるときに、JavaScript コードが速いバイナリーフォーマットにコンパイルされて、可能な限り高速に実行されます。しかし、JavaScript は、事前ではなく実行時にコンパイルされるために、インタープリタ言語と考えられています。, サーバーサイドとクライアントサイドという言葉も聞いたことがあるかもしれません。特に Web開発でよく聞かれます。クライアントサイドコードはユーザーのコンピューター上で実行されるコードです。ウェブページを見ているとき、ページのクライアントサイドコードがダウンロードされて、ブラウザーで実行されて表示されます。この JavaScript モジュールのことを明示的にクライアントサイド JavaScript と言います。, 反対に、サーバーサイドコードはサーバー上で実行され、結果がブラウザーにダウンロードされて表示されます。Web で人気のあるサーバーサイドの言語は、PHP、Python、Ruby や ASP.NET など。そして JavaScript です! JavaScript はサーバーサイドの言語としても使われます。人気のある Node.js 環境がその例です。サーバーサイドの JavaScript については Dynamic Websites – Server-side programming のトピックを見てください。, クライアントサイドの JavaScript と、サーバーサイドの言語を説明するのに動的という言葉を使います。これはウェブページやウェブアプリが必要に応じてコンテンツを生成し、異なる状況において異なる表示ができるという能力を指しています。サーバーサイドのコードは、データベースからデータを取得して動的にコンテンツを生成します。一方、クライアントサイドの JavaScript はクライアント上のブラウザーで HTML のテーブルを生成したり、そのテーブルにサーバーから指示を受け、データを追加したり、ウェブページ上でユーザーにテーブルを表示したりするなどして、動的にコンテンツを生成します。それぞれの文脈で、少し異なる意味合いではありますが、関連しています。そしてどちらの方式も (サーバーサイドもクライアントサイドも) たいていは同時に使用されます。, 動的に更新されるコンテンツを含まないウェブページは静的と表現されます。静的なウェブページとは常に同じコンテンツを表示するページのことです。, JavaScript は CSS と同じような方法で、HTML ページに適用することができます。CSS では 要素を使用することで外部のスタイルシートを適用することができ、また、