検索
ホームページウェブフロントエンドjsチュートリアルNode.js では何ができるのでしょうか?数分でわかるnode.jsの機能の概要

この記事ではnode.jsの定義を中心に紹介し、node.jsの役割についてもまとめていますので、ぜひ一緒に読んでみてください

まずは見てみましょう。 Node.js で何ができるか見てみましょう。

これは、node のより正式な紹介です

Node.js は、Chrome V8 エンジンに基づく JavaScript 実行環境です。

Node.js はイベント駆動型のノンブロッキング I/O モデルを使用しており、軽量かつ効率的です。 (イベントドリブン:イベントトリガープロセスにおける意思決定の戦略。簡単に言えば、現時点で現れているものを追跡し、それを解決するために利用可能なリソースを呼び出すことで、継続的に現れ続けるものを解決すること)を解決し、物事の蓄積を防ぐことができます)

Node.js のパッケージ マネージャー npm は、世界最大のオープンソース エコシステムになりました。さらに詳しく知りたい場合は、PHP 中国語 Web サイトにアクセスしてくださいnode.js ビデオ チュートリアル

ここで、nodejs の関数の概要を見てみましょう:

node.js。高速、高パフォーマンス、高い開発効率、幅広いアプリケーション

他の人は通常漠然と次のように言います:node.js にはノンブロッキング、イベント駆動型 I/O などの機能があり、高い同時実行性が可能です。 (高い同時実行性) ポーリング (Polling) と Comet で構築されたアプリケーションが可能になります。

ここまで説明を読んでもよくわからないと感じた場合は、node.js を簡単かつ大雑把に理解できるようお手伝いします。

ブラウザがウェブサイトにリクエストを送信するプロセスは、あまり変わっていません。ブラウザが Web サイトにリクエストを送信するとき。サーバーはリクエストを受信し、リクエストされたリソースの検索を開始します。必要に応じて、サーバーはデータベースにもクエリを実行し、最終的に応答結果をブラウザに送り返します。

ただし、従来の Web サーバー (Apache など) では、リクエストごとにサーバーがリクエストを処理するための新しいプロセスを作成します。

その後にアヤックスが登場しました。 Ajax を使用すると、毎回完全な新しいページをリクエストする必要がなく、毎回必要なページ情報の一部のみをリクエストします。これは明らかに改善です

。しかし、FriendFeed (友達のニュースを更新する Renren に似た Web サイト) のようなソーシャル ネットワーキング サイトを構築したい場合、友達がいつでも新しいステータスをプッシュし、あなたのニュースがリアルタイムで自動的に更新されます。

この要件を達成するには、ユーザーがサーバーとの効果的な接続を維持できるようにする必要があります。現時点で最も簡単な実装方法は、ユーザーとサーバーの間で長いポーリングを維持することです。

HTTP リクエストは継続的な接続ではありません。リクエストを 1 回行うと、サーバーが 1 回応答して終了します。ロング ポーリングは、HTTP を使用して永続的な接続をシミュレートする手法です。具体的には、ページが読み込まれている限り、サーバーからの応答が必要かどうかに関係なく、サーバーに Ajax リクエストを送信します。

このリクエストは通常​​の Ajax リクエストとは異なり、サーバーは情報を直接返すことはなく、サーバーが情報を送信する時期が来たと判断するまで待機してから応答します。たとえば、友人が新しいメッセージを投稿すると、サーバーはその新しいメッセージを応答としてブラウザに送信し、ブラウザはページを更新します。ブラウザは応答を受信して​​更新した後、新しいリクエストをサーバーに送信しますが、このリクエストにはすぐには応答しません。そこで、上記の手順を繰り返し始めました。この方法を使用すると、ブラウザは常に応答を待ち続けることができます。上記のプロセスにはまだ非永続的な HTTP のみが含まれていますが、一見継続的な接続状態をシミュレートしました

従来のサーバー (Apache など) を見てみましょう。新しいユーザーが Web サイトに接続するたびに、サーバーは接続を開く必要があります。各接続にはプロセスが必要ですが、これらのプロセスはほとんどの時間アイドル状態です (たとえば、友人が新しいニュースを送信するのを待ったり、友人がメッセージの送信を完了してからユーザーに応答したりするのを待ったり、データベースが戻るのを待ったりします)クエリ結果など)。

これらのプロセスはアイドル状態ですが、依然としてメモリを占有します。これは、ユーザー接続の数が一定の規模まで増加すると、サーバーがメモリ不足になり、崩壊する可能性があることを意味します。

この状況を解決するにはどうすればよいですか?解決策は、上で述べたとおり、ノンブロッキングでイベント駆動型です。これらの概念は、実際、私たちが話しているシナリオを理解するのはそれほど難しいことではありません。

ノンブロッキングサーバーをループとして考えると、このループは実行され続けます。新しいリクエストが来ると、このループはリクエストを受信し、そのリクエストを他のプロセスに渡し (データベース クエリを実行するプロセスに渡すなど)、コールバックで応答します。それが完了すると、ループは実行を継続し、他のリクエストを受信します。このまま降りてください。サーバーは、以前のようにデータベースが結果を返すのを待ちません。

データベースが結果を返すと、ループは結果をユーザーのブラウザに送り返し、実行を継続します。こうすることで、サーバーのプロセスがアイドル状態で待機することがなくなります。したがって、理論的には、同時にデータベース クエリとユーザー リクエストの数に制限はありません。サーバーは、ユーザー側でイベントが発生した場合にのみ応答します。これはイベント駆動型です。

FriendFeed は、Python ベースのノンブロッキング フレームワーク Tornado (Zhihu もこのフレームワークを使用しています) を使用して、上記の新しいニュース機能を実装します。ただし、Node.js は前者よりもさらに優れています。

Node.js アプリケーションは JavaScript を通じて開発され、Google の異常な V8 エンジンで直接実行されます。 Node.js を使用すると、クライアントのリクエストがサーバー内でブロックを引き起こす可能性のあるコードを実行することを心配する必要がありません。 JavaScript 自体がイベント駆動型のスクリプト言語であるためです。考えてみると、フロントエンドの JavaScript を書くときは、イベント処理とコールバック関数を扱うことがほとんどです。 JavaScript 自体はイベント処理に特化した言語です。

Node.js はまだ初期段階にあります。 Node.js に基づいてアプリケーションを開発する場合は、おそらく非常に低レベルのコードを記述する必要があります。

しかし、次世代のブラウザでは間もなく WebSocket テクノロジーが採用され、ロングポーリングも廃止されるでしょう。 Web 開発において、Node.js のようなテクノロジーは今後ますます重要になるでしょう。

上記はこの記事のnode.jsの概要です。非常に詳しく説明されているので、ぜひ読んでください。さらに詳しく学びたい学生は、PHP 中国語 Web サイトにアクセスしてくださいNode.js 開発マニュアルコラム

[編集者の推奨]

CSS でフォ​​ントをカスタマイズするにはどうすればよいですか? HTMLのテキストフォントスタイルの紹介

HTMLベースタグの使い方は? HTMLベースタグの使い方まとめ

以上がNode.js では何ができるのでしょうか?数分でわかるnode.jsの機能の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Java vs JavaScript:開発者向けの詳細な比較Java vs JavaScript:開発者向けの詳細な比較May 16, 2025 am 12:01 AM

Javaandjavascriptaredistinctlanguages:javaisusedforenterpriseandmobileapps、whilejavascriptisforinteractivewebpages.1)javaiscompiled、staticatically、andrunsonjvm.2)javascriptisisterted、dynamsornoded.3)

JavaScriptのデータ型:ブラウザとNodejsに違いはありますか?JavaScriptのデータ型:ブラウザとNodejsに違いはありますか?May 14, 2025 am 12:15 AM

JavaScriptコアデータ型は、ブラウザとnode.jsで一貫していますが、余分なタイプとは異なる方法で処理されます。 1)グローバルオブジェクトはブラウザのウィンドウであり、node.jsのグローバルです2)バイナリデータの処理に使用されるNode.jsの一意のバッファオブジェクト。 3)パフォーマンスと時間の処理にも違いがあり、環境に従ってコードを調整する必要があります。

JavaScriptコメント://および / * *を使用するためのガイドJavaScriptコメント://および / * *を使用するためのガイドMay 13, 2025 pm 03:49 PM

javascriptusestwotypesofcomments:シングルライン(//)およびマルチライン(//)

Python vs. JavaScript:開発者の比較分析Python vs. JavaScript:開発者の比較分析May 09, 2025 am 12:22 AM

PythonとJavaScriptの主な違いは、タイプシステムとアプリケーションシナリオです。 1。Pythonは、科学的コンピューティングとデータ分析に適した動的タイプを使用します。 2。JavaScriptは弱いタイプを採用し、フロントエンドとフルスタックの開発で広く使用されています。この2つは、非同期プログラミングとパフォーマンスの最適化に独自の利点があり、選択する際にプロジェクトの要件に従って決定する必要があります。

Python vs. JavaScript:ジョブに適したツールを選択するPython vs. JavaScript:ジョブに適したツールを選択するMay 08, 2025 am 12:10 AM

PythonまたはJavaScriptを選択するかどうかは、プロジェクトの種類によって異なります。1)データサイエンスおよび自動化タスクのPythonを選択します。 2)フロントエンドとフルスタック開発のためにJavaScriptを選択します。 Pythonは、データ処理と自動化における強力なライブラリに好まれていますが、JavaScriptはWebインタラクションとフルスタック開発の利点に不可欠です。

PythonとJavaScript:それぞれの強みを理解するPythonとJavaScript:それぞれの強みを理解するMay 06, 2025 am 12:15 AM

PythonとJavaScriptにはそれぞれ独自の利点があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1. Pythonは、データサイエンスやバックエンド開発に適した簡潔な構文を備えた学習が簡単ですが、実行速度が遅くなっています。 2。JavaScriptはフロントエンド開発のいたるところにあり、強力な非同期プログラミング機能を備えています。 node.jsはフルスタックの開発に適していますが、構文は複雑でエラーが発生しやすい場合があります。

JavaScriptのコア:CまたはCの上に構築されていますか?JavaScriptのコア:CまたはCの上に構築されていますか?May 05, 2025 am 12:07 AM

javascriptisnotbuiltoncorc;それは、解釈されていることを解釈しました。

JavaScriptアプリケーション:フロントエンドからバックエンドまでJavaScriptアプリケーション:フロントエンドからバックエンドまでMay 04, 2025 am 12:12 AM

JavaScriptは、フロントエンドおよびバックエンド開発に使用できます。フロントエンドは、DOM操作を介してユーザーエクスペリエンスを強化し、バックエンドはnode.jsを介してサーバータスクを処理することを処理します。 1.フロントエンドの例:Webページテキストのコンテンツを変更します。 2。バックエンドの例:node.jsサーバーを作成します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。