1

我有一个网页,我正在为一个个人项目工作,以了解 javascript 和 Web 开发。该页面由一个菜单栏和一些内容组成。我的想法是,当单击链接时,通过 AJAX 更改页面的内容,这样我:

  1. 从不同的页面获取一些新内容,
  2. 用新内容替换旧内容,
  3. 用一些漂亮的 javascript 视觉效果动画内容变化。

我认为这比使用标准 HTTP GET 请求获取整个文档更有效,因为浏览器不必获取<head>文档标签中的样式表和脚本。我还应该补充一点,我仅从我创建的 Web 应用程序提供的文档中获取内容,并且我完全了解其内容。

无论如何,我最近在一个 SO 问题上遇到了这个答案,这让我想知道设计一个符合我对网页要求的解决方案的理想方法。在我看来,有两种解决方案,似乎都不理想:

  1. 配置我从中获取的后端(服务器),如果仅要求内容,它将返回内容而不是整个页面,然后使用 AJAX(我当前的解决方案)加载该内容,或者
  2. 使用 AJAX 获取整个文档,然后使用脚本提取内容并将其加载到页面中。

在我看来,这两种解决方案都不完全正确。对于 1,似乎我在两个不同的地方拆分逻辑:服务器必须配置为在要求内容时提供内容,并且 javascript 必须知道如何要求内容。对于 2,这似乎是对 AJAX 的不恰当使用(根据前面提到的 SO 答案),因为我要求一整个页面然后解析它,而 AJAX 是为了获取少量信息而不是比整个文件。

所以我要问:从工程的角度来看,这两种解决方案中哪一种更好?是否有另一种解决方案比这两个选项中的任何一个更好?

4

1 回答 1

1

用一些漂亮的 javascript 视觉效果动画内容变化。

请不要。无论如何,您似乎正在寻找像Knockout这样的 JS MVC 框架。

使用这样的框架,您可以让服务器返回模型,以 JSON 或 XML 表示,一小段 JS 使用各种模板和注释方式将其转换为 HTML。

因此,无需在服务器端进行模型到 HTML 的转换并将一大段 HTML 发送到浏览器,您只需以浏览器(或者更确切地说 JS)理解的方式返回业务对象列表(例如,地址)并让 Knockout 绑定到网格视图、输入元素等。

于 2013-07-10T15:33:11.463 回答