3

多くの ajax を使用する Web プロジェクトに取り組んでいます。私は playframework を使用しており、html テンプレートで playframework リバース ルーターにアクセスできるため、ルーターから URL を取得でき、後でサイトの URL 構造を変更することにした場合にどうなるか心配する必要はありません。ただし、外部 js ファイルのリバース ルーターにアクセスすることはできませんが、これらのファイルのリクエストに対してリバース ルーターの間接化を利用したいと思うことがよくあります。

私は、すべての外部 ajax 関数が url パラメーターを受け入れることを強制しない解決策を思いつきました。それは、次のようなグローバル url オブジェクトを作成することでした。

var globalUrls = {
    confirmImageUpload : "@routes.UploadController.confirmResourceUpload()",
    anotherUrl : "@routes.AnotherController.anotherControllerMethod()"
}

次に、このオブジェクトを外部 js ファイルで使用して、ajax リクエストの送信先を把握します。

これは大丈夫ですか?これが悪い習慣なのか、それともそのようなすべての URL を公開することが賢明なのかはわかりません...

これが何らかの理由でばかげている場合は、経験豊富な個人が介入してくれることを願っています...

4

1 に答える 1

0

グローバルの量を減らし、アプリをもう少しモジュール化する方法は他にもあると思いますが、アプリがどのように構造化されているかを確認しないと、なんとも言えません。

おそらく、ajax クエリを処理するクラスまたはモジュールがあり、その中に URL を格納できますか? たとえば、「setDefaultAjaxServerAddresses()」メソッドを持つことができます。次に、それらをモジュール内に保存します。

于 2012-06-09T18:58:09.137 に答える