2017-05-01 6 views
0

私はJavascriptやPHP以外の言語でDOMを操作する方法を知りました。私はいつもJavascriptとPHPを他のHTMLとCSSコードを使って一つのHTMLファイルで使うことができます。Javascript以外の言語でDOMを操作するにはどうすればよいですか?

同様に、JavaScriptにはdocument.getElemenyById()などの複数のメソッドがあります。PHPでは、基本的にハイパーテキストプリプロセッサであるため、サーバーを介して自動的にHTMLをレンダリングし、DOM操作に再び使用できます。

他の言語はどうですか?ウェブを構築するためにそれらを使用できますか?具体的には、HTMLやCSSの操作などを行います。たとえば、PythonやC#としましょう。 JSやPHPのように使うにはどうすればいいですか?

+0

http://stackoverflow.com/questions/2782097/python-is-there-a-built-in-package-to-parse-html-into-dom –

+0

私は最終的にはすべてjavascriptに変わると思います。彼らは蒸散する。 –

+0

PHPはサーバー側のスクリプト言語です。同様に、PHPの代わりに、Python、Java、または他のサーバー側スクリプト言語を使用して同じことを行うこともできます。しかし、DOMはクライアントサイドのものの一部であり、Javascript以外のクライアントサイドでは他の種類のスクリプティングは動作しません。だから、javascriptを除いて、DOMに何か変更を加えるようなことはありません。 – mi6crazyheart

答えて

2

DOMに「作業する」の2つの段階があります。 最初の段階はサーバーレンダリングです。 PHPエンジンは、テンプレート(HTML、PHPの混合)とデータを受け取り、有効なHTMLをブラウザに出力します。この段階では、ブラウザによってDOMツリーに解析されるHTMLをビルドすることができます。あなたはDOMではなく、テンプレートのプレーンテキストで作業します。

第2段階はJavascript評価です。ブラウザはJSを解析して実行し、このJSはDOMツリーにアクセスできます。

最初の段階は、サーバー上で実行される任意の言語で実行できます。あなたは、C#のテンプレート、Pythonのテンプレートを使用することができますテンプレートを行く、さらにはJavaScript。すべてのテンプレートエンジンはテンプレート(テキスト)とデータを進め、有効なHTMLになることができるテキスト出力を与えます。

2番目のステージは、JSのみで動作するため、JSのみで動作します。フロントエンド(ダーツのような)に他の言語を持ち込む試みがいくつかあり、すべて失敗しました。しかし、いくつかの選択肢があります。 JSを対象とすることができる既存の言語用のコンパイラーが多数あります。たとえば、clojruescript for clojure、bucklescript for ocaml、gopherjs for goなどがあります。また、この目的のために作成された言語(JSにコンパイル):purescript、elm、typescriptなどがあります。 最新のブラウザでは、webassemblyバイナリパッケージを使用できます。 JSとは異なりますが、DOMへのアクセスもありません。

+0

ありがとうございました。今、私はJSがクライアントサイドである理由を理解しています。なぜなら、ブラウザはデフォルトでそれを持っているからです。 Python/C#などがブラウザに実装されていれば、JSと同じように、Python/C#などを実装することができます。一つの最後のことは、PHPと同じ方法でHTMLと一緒に同じファイルでPythonを使用できないのはなぜですか? –

+0

OCamlの場合、私は[ocsigen](https://ocsigen.org/)を引用しているので、クライアント側とサーバ側の両方で統一的に作業することができます。 – ghilesZ

+0

@HenrySpikeそれは言語のアーキテクチャのためです。私はPythonエコシステムに精通していませんが、Nodejsではいくつかのテンプレートエンジンがjsコードを内部で使うことを許しています。多分、Pythonには何かがあります。 しかし、私は気づくべきです:これは悪い習慣です。 MVCパターンを確認してください。これはPHPで一般的な落とし穴を避けるのに役立ちます。 –

1

あなたがここに提起している本当の問題は、次のとおりです。

我々はJSのようなDOM操作のためのC#やPythonのような言語を使用することができますかどうか?

簡単な言葉では、答えはいいえです。しかし、あなたが何らかのパーサを使用しているなら、あなたはHTMLのようなPythonで何かをやっている気がしますが、ブラウザ上ではHTMLだけになります。 むしろ私は言います...マークアップ言語(フロントエンド言語)とサーバー側言語の間には非常に大きな違いがあります。

HTMLは、Webページ上の一部のコンテンツを表示するためのマークアップとして使用されます。あなたはいくつかのテンプレートを使用することができますが、それは最終的には最終的にHTMLのみにコンパイルされます。 JSの役割は今やWebページ上に作成されていても、Javascriptは操作/操作を実行する権限を持っています。これはDOM操作と呼ばれ、いくつかのフロントエンド言語を通してのみ可能です。私の知る限りでは現在のところJavascriptしかありません。(私が間違っていると誰かが私を修正してください)

今やC#、python、PHPの役割があります。これらの言語はバックエンドジョブ用です。あなたがフロントエンドから送信しているものは、バックエンドで処理され、これらの言語はその目的のために使用されるため、C#によるDOM操作は大きなNOです。そのためにはjavascript(jQueryやその他のライブラリ)が必要です。

ありがとう、

+0

これを行う方法は 'Python'などのデータをJSに送信し、JSはDOMを操作できますか?さらに、なぜPHPはHTMLで動作しますが、他の言語では動作しませんか?さらに、JSはクライアント側であると決定しました。私は、そのあとのプログラミング言語を他のすべてのプログラミング言語と同じように意味します。 –

関連する問題