ドキュメントオブジェクトモデル (略してDOM)は、 HTMLおよびXMLドキュメントのプログラミングインターフェイスであり、プログラムがドキュメントの構造、スタイル、およびコンテンツを変更できるようにページを表します。このテーマの詳細。
クライアント側(ブラウザ)とサーバー側(Node.js )の必要な区別とそれらの主な目標:
- クライアント側:Webの情報へのアクセスと表示
- サーバー側:Web情報を配信するための安定した信頼できる方法を提供します
Node.jsにデフォルトのDOMがないのはなぜですか?
デフォルトでは、Node.jsにはアクセス権がなく、独自のブラウザーの実際のDOMに関する知識もありません。Node.jsはデータを配信するだけで、DOMを含むWebサイト全体を処理およびレンダリングするために独自のブラウザーで使用されます。サーバーは、使用および処理するデータをブラウザーに提供します。それが意図された方法です。
Node.jsのDOMにアクセスしたくないのはなぜですか?
Node.jsを使用してブラウザーの実際のDOMにアクセスすることは、サーバーの目標から外れているだけです。あなた自身のブラウザの役割は、サーバーからのデータを表示することです。ただし、それは確かに可能であり、AJAX呼び出しを使用してDOMを事前レンダリング、操作、または変更するためのさまざまなレベルの深さと種類の複数のソリューションがあります。将来のトレンドがもたらすものを見ていきます。
Node.jsのDOMにアクセスしたいのはなぜですか?
デフォルトでは、Node.jsを使用して独自の実際のDOM (少なくともその一部のデータ)にアクセスしないでください。クライアント側とサーバー側は、長年の経験と知識に基づいて、役割、機能、および責任の点で分離されています。いくつかの状況がありますが、そうする確かな理由があります:
- 使用状況データの収集(A / Bテスト、UI / UXの効率とフィードバック)
- ヘッドレステスト(開発、自動化、Webスクレイピング)
Node.jsでDOMにアクセスするにはどうすればよいですか?
- jsdom:純粋なJavaScript実装、独自のDOM/ブラウザー関連プロジェクトのテストに適しています
- cheerio:jQueryが好き/頻繁に使用する場合の優れたソリューション
- puppeteer:GoogleChromeを使用してヘッドレステストを提供するGoogle独自の方法
- 独自のソリューション (ここにあなたの可能な将来のプロジェクトリンク)
これらのソリューションは、デフォルトでブラウザ自体の実際のDOMにアクセスする方法を提供しませんが、DOMに関する何らかの形式のデータをサーバーに送信するプロジェクトを作成し、ニーズに基づいてそのデータを使用/レンダリング/操作することができます。 。
...そしてそうです、ツールとユーティリティの観点からのWebスクレイピングとWeb開発は、いくつかの分野でより洗練され、確かに簡単になりました。