2

私は現在プロジェクトに取り組んでおり、ページ全体をJavascriptで記述しています。

基本的な関数を作成しました:

create_element(parent, type, style, attributes);

使用例:

var container = create_element(document.body, "div", {width: "100%", height: "100%"});
var header_bar = create_element(container, "div",  {width: "100%", height: "50px"});
var title_span = create_element(header_bar, "span", {fontSize: "18px", fontFamily: "arial", color: "black"});
title_span.innerHTML = "Example Website";

等々...

私はこのアプローチをウェブサイトのレイアウト全体に使用しています。この方法を使用することに大きな欠点はありますか?明らかなのは、JSが無効になっている人がまだいる可能性があるという事実です。

JavascriptがアイテムをHTMLにハードコードするのではなく作成およびレンダリングする場合、ページの読み込み時間に明確な違いはありますか?

ありがとう!

TL;DR-

create_element関数を作成し、それを使用してすべての要素を画面に描画します。ページの基本レイアウトを含みます。

4

6 に答える 6

9

非動的コンテンツを動的に生成しようとすると、次のような問題が発生します。

  1. 保守性は非常に難しくなります。サイトに大幅な変更を加えたい場合は、CSSやHTMLを変更するだけでなく、JSを編集する必要があります。
  2. SEO-Googleは動的データのインデックスを作成できません。あなたがあなたのサイトが検索エンジンを通して見つけられることを望むならば、これは良くありません。
  3. レイヤーを混ぜています。関心の分離(ビューとコンテンツと...)を分離しないことで、保守性の問題が増え、将来の自分自身または将来コードに触れなければならない別の開発者に問題が発生します。

さて、動的生成を行うのは間違いではありませんが、適切に行ってください。サイト全体のコンテンツを動的に生成しないことを強くお勧めします。

元の質問へのコメントに基づいて更新

JSを楽しんでいただけるのは素晴らしいことです。そして、私はHTMLが少し退屈である可能性があることに間違いなく同意します。ただし、懸念事項を適切に分離している場合は、HTMLをほとんど記述せずに、コーディングを楽しんでいるものにすばやく戻すことができます。ただし、言語をそうでないものに強制的に適合させようとしないように注意してください。それを完璧に行うために別の言語が作成されたときに行うことを意味しました。(ハンマー/ネイルルール)

また、HTML5とCSS3は非常に強力であることを忘れないでください。あなたはそれで多くのことをすることができ、JSに触れる必要さえありません(クライアントのニーズを満たすと仮定して)。

于 2012-08-01T14:10:34.947 に答える
3

1つの大きな問題は、このように構築した場合、Googleがサイトのコンテンツをインデックスに登録しないことです。

また、この方法では、コンテンツ、ロジック、およびスタイルが分離されません。これは、個別のファイルとサーバー側スクリプト言語でhtml/cssを使用する場合に大きなメリットになると思います。

于 2012-08-01T14:06:55.480 に答える
2

ページのレンダリングに使用されるメタデータがセキュリティの問題につながるため、全体として評価されないようにすると、サーバーからの応答に基づいてWebサイト全体がjavascriptによって生成されることは間違いではありません。

于 2012-08-01T14:05:20.457 に答える
0

私の意見では、動的コンテンツでない場合は、htmlをそのまま使用する方が本当に良いでしょう。

さらに、CSSファイルを個別に設定する方が、インラインで設定するよりも適切です。

于 2012-08-01T14:05:46.387 に答える
0

BackboneJSはこれを行います。JSがサーバー側のレンダリングを補完するためにクライアント側で使用されていること、およびクライアントでのみ実行されるレンダリングの全体または一部がサーバー上でも実行できることを確認する必要があります。

于 2012-08-01T14:09:08.500 に答える
0

ページのコンテンツをjavascriptで完全に生成できなかった理由はありませんが、この要素を要素ごとに推奨することはしません。スタイルルールは使用せず、インラインスタイルのみを使用します。さらに、この場合、Underscore.jsで使用されているような、htmlのブロックに何らかのテンプレートメカニズムを使用する方が保守しやすくなります。(MustacheやHandlebarsのように、多くのテンプレートソリューションがあります。使用したものを提供しています。)HTMLをJavaScriptファイルのどこかになくても、HTMLを維持する方法はいくつかあります。 javascriptファイル、それは要素ビジネスによってこの要素よりも保守しやすいでしょう。

于 2012-08-01T14:17:14.270 に答える