分层AJAX

时间:2012-03-05 22:53:12

标签: ajax hierarchy

我有一个围绕MVC架构构建的PHP应用程序,没有任何当前生成完整页面的框架。

例如:访问(http://site.com/xyz)会生成整个页面并将其发送到浏览器。

我现在想要将AJAX添加到混合中,以便只通过AJAX响应返回页面的一部分。对于上面的例子,它很容易实现。

但是,在子页面中可以有许多子页面和页面的意义上,应用程序是层次化的。

就我而言,我们以此页面为例:http://site.com/system/backups/databases

在上述情况下,应发生以下情况:

  • 如果用户在site.com上,应用程序应生成系统/备份/数据库并在AJAX响应中返回。

  • 如果用户在site.com/system上,则应用程序应生成备份/数据库并将其返回。

  • ......等等。

我使用YUI3作为我的javascript框架,并希望最小化任何代码重复。我应该如何处理客户端?

  • 我是否应该有一个集中 ALL ajax用于加载,显示和卸载页面的中央AJAX组件?

  • 或者我应该有一个主要的AJAX组件,只处理加载一个级别(在这种情况下是/system/)并让/system/加载的页面处理其子页面的加载?这种方法似乎会导致相当多的代码重复,但我可能错了。

  • 在服务器端,应如何处理?服务器应如何决定是呈现system/backups/databases还是backups/databasesdatabases

1 个答案:

答案 0 :(得分:0)

我想出的解决方案是将所有HTML发送到客户端。我已经确保我的HTML使用ID和类正确构造,以指示“子页面”。

通过此信息,客户端随后会知道页面上已显示的内容以及已收到的内容。然后,它只是移除与接收的部件不同的部件并插入新部件。

显然,这有点低效,因为我们通过线路发送完整的响应(而不仅仅是所需的响应),但这减少了很多逻辑,以便将客户端视图与服务器端生成的视图同步。