Ajax与PHP——Ajax是服务器端的替代品吗;查看“;MVC

Ajax with PHP - Is Ajax a replacement of server side "View" of MVC?

本文关键字:Ajax MVC 查看 PHP 服务器端 替代品      更新时间:2023-09-26

我的博客使用PHP mvc框架(Codeigner)。

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

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

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

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

在MVC web框架中,视图是一个用于将从控制器传入的数据转换为HTML的模板,然而,客户端模板语言已经变得非常流行,并且是在服务器上呈现HTML输出的完全合理的替代方案,并且它们具有明确的优势。

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

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

然而,也有一些缺点,比如SEO,尽管有一些变通办法。一种选择是使用服务器端视图向爬网程序提供SEO友好版本的页面,或者简单地使用Node.js或Rhino在服务器端渲染模板。用编译成JavaScript的语言编写模板的美妙之处在于,服务器和浏览器都可以执行它们,这是其他语言无法比拟的。