3

我正在开发一个使用大量 ajax 的 Web 项目。我正在使用 playframework,并且在我的 html 模板中,我可以访问 playframework 反向路由器,因此我可以从路由器获取 url,而不必担心如果我以后决定更改站点的 url 结构会发生什么。但是,我无法访问外部 js 文件中的反向路由器,但通常希望利用反向路由器的间接性来处理这些文件中的请求。

我想出了一个不强制每个外部 ajax 函数接受 url 参数的解决方案,那就是创建一个像这样的全局 url 对象:

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

然后我在外部 js 文件中使用这个对象来知道将 ajax 请求发送到哪里。

这可以吗?我不知道这是否是不好的做法,或者像这样公开所有网址是否明智......

如果出于某种原因愚蠢,我希望一些有经验的人会插话......

4

1 回答 1

0

我认为还有其他方法可以减少全局变量的数量并使您的应用程序更加模块化,但是如果不了解您的应用程序的结构,就很难说。

也许您有一个类或模块来处理您的 ajax 查询,并且您可以将 url 存储在其中?例如,它可以有一个方法“setDefaultAjaxServerAddresses()”。然后它将这些存储在模块中。

于 2012-06-09T18:58:09.137 回答