0

我正在为我的网络博客使用 PHP mvc 框架(Codeigniter)。

我将第一次实现 Ajax 以亲眼看到真正的好处。

我想我从视图中所做的,例如在 html 页面上的格式化和显示结果现在可以被 Ajax 实现所取代。所以我猜服务器端mvc的视图将不再使用。

通过表单验证,建议为客户端和服务器都设置逻辑,以防 javascript 被绕过。我想当客户端浏览器禁用 javascript 时,同样的概念也适用于 Ajax。我的意思是,当它被禁用时,你不会得到任何数据。这种情况的备份解决方案是什么,比如如何处理验证?

4

1 回答 1

1

您已经问了两个问题,但我只回答第一个问题:AJAX 能否取代服务器端视图传统上的角色?

在 MVC Web 框架中,视图是将来自控制器的数据转换为 HTML 的模板,但是,客户端模板语言已经变得非常流行,并且是在服务器上呈现 HTML 输出的完全合理的替代方案,并且它们具有明显的优势.

首先,由于您没有将整个 HTML 有效负载发送到客户端浏览器,而只是发送内容,因此您可以显着节省带宽。生成 HTML 客户端允许您仅将数据(如 JSON 或 XML)传输到客户端。服务器端视图将仅包含指向 JavaScript 模板和内容负载的脚本标记。

其次,由于这些 JavaScript 模板可以从 CDN 提供,您可以从这些网络的速度以及跨页面缓存中受益,因此用户可能只下载特定页面和数据所独有的那些模板。

但是,有一些缺点,例如 SEO,尽管有一些解决方法。一种选择是使用服务器端视图将页面的 SEO 友好版本提供给爬虫,或者使用 Node.js 或 Rhino 简单地在服务器端呈现您的模板。用编译成 JavaScript 的语言编写模板的美妙之处在于服务器和浏览器都可以执行它们,这是其他语言所没有的。

于 2013-08-31T06:55:36.153 回答