5

私は最近 Web アプリの作成を開始しました。機能するものをいくつか作成していますが、ベスト プラクティスについてはよくわかりません。

これまで、Django、web.py、および PHP のテンプレート システムを主に使用してきました。しかし、jQuery と素晴らしい ajaxy マジックを使用して、クライアントを更新せずにサーバーからデータを取得するようになったので、HTML を JavaScript で直接作成することの利点がわかりました (したがって、小さな json オブジェクトをクライアントに送信し、彼に何をどのように変更するかを理解させます)。

だから今、私はテンプレートでレンダリングされたビットとJavaScriptで構築されたビットをいくつか持っています.HTMLテーブルを作成するJavaScript関数を生成するweb.pyテンプレートの両方が混在している恐ろしいケースです- Cマクロをもう一度!(最終的にはリファクタリングします)

これは Web 開発の一般的な問題ですか? 「すべてにjsonを使用し、JavaScriptで可能な限りレンダリングする」、「ライブラリfooを使用する」など、推奨されるベストプラクティスはありますか? テンプレートで何を処理するか、JavaScript で何を処理するかについての優れたヒューリスティックはありますか?

ここで少し検索すると、javascript templates について尋ねている人が見つかりました。これは可能な解決策のようです。

4

5 に答える 5

4

ページのレイアウトにJavascriptを使用しないでください。必要な場所でのみ使用してください。

最近の機能強化と標準化にもかかわらず、Javascriptは一般的に低速であり、完全に互換性を保つのは困難であり(古いIEなどを考えてください)、一部のスクリーンリーダーやスクレーパー/検索エンジンとの互換性はそれほど高くありません。

ストレートアップHTMLを返すことでそれを実行できる場合は、通常、それが目的の方法です。

于 2010-11-21T20:04:34.037 に答える
2

ここに少し関連する質問があります。

両方に同じテンプレートを使用することもできます -このライブラリは興味深いようです。

サーバー上でのみテンプレートをレンダリングできます...上の質問には、それを効率的に行う方法があります。

必要に応じて、特定のテンプレートを JavaScript で複製できます - jqtemplateを試してください。

個人的には、テンプレートの重複を避けるために、おそらくサーバー側でのみ HTML をレンダリングします。私のサーバーがより多くのJSON Webサービスとして機能し、他のクライアントにもサービスを提供する可能性がある場合は、JSテンプレートを使用します。

とはいえ、もしあなたのサイトがアクセシブルで非 js フレンドリーであることが重要であれば (そうあるべきです)、完全に js を使わずにサイトを書き、それから徐々に強化してください。

于 2010-11-22T17:02:25.823 に答える
1

Web サイトの機能を JavaScript に基づいて作成しないでください。そうすると、javascript がオフになっているすべての訪問者が失われます。本当に必要な場合は、JavaScript がオフになっているユーザーを検出してリダイレクトする必要があります。または<noscript>代替手段を提供します。さらに、クローラーは JavaScript を数日解析できるようになりましたが、それでも Web サイトの SEO に大きなダメージを与えます。互換性とオーバーヘッドの問題もあり、今日のモバイル デバイスやネットブックなどで問題になる可能性があります。

于 2010-11-21T21:16:48.057 に答える
1

少し前に同じトラブルに見舞われました。web.py テンプレートを使用して何かをレンダリングする Web ページがあり、それには ajax ページネーションがありました。そのため、javascript を使用して次のページをレンダリングする必要がありました。最終的に、web.py テンプレート エンジンを拡張して、同じテンプレート出力をレンダリングする JavaScript 関数を生成しました。

詳細については、次のブログ投稿を参照してください。

http://anandology.com/blog/javascript-templating-with-webpy/

于 2010-11-22T16:48:09.620 に答える