Ajax与PHP——Ajax是服务器端的替代品吗;查看“;MVC
Ajax with PHP - Is Ajax a replacement of server side "View" of MVC?
我的博客使用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的语言编写模板的美妙之处在于,服务器和浏览器都可以执行它们,这是其他语言无法比拟的。
- 在MVC 4中,对Controller的Ajax调用为空
- 无法在mvc视图中使用ajax调用获取操作返回的模型对象列表
- ASP.NET MVC 3-在ajax调用后,重定向到新页面或生成页面刷新
- 通过mvc中的ajax动作链接获取关于成功的响应头
- 使用 JQUERY AJAX (Spring MVC) 从控制器中删除
- 如何在Razor MVC 5.2.3 Ajax中使用多个提交按钮
- 以非ajax方式将js对象传递给mvc操作
- Spring MVC Ajax请求刷新动态表
- Knockout asyncCommand / Ajax MVC ActionResults
- 我如何从javascript文件中AJAX发布到MVC操作
- ajax.beginform() 不更新部分视图 MVC
- Webgrid ajax call MVC 5
- MVC AJAX POST 请求在控制器中显示为空
- 当Json Length过长时,对ASP.NET MVC Controller的Ajax调用返回404
- 成功生成ajax MVC中的表
- 使用 ajax (MVC) 的 JQuery UI 可折叠高度问题
- 上传文件jQuery ajax MVC
- knocket将绑定应用于从ajax mvc contrib网格动态加载的html
- 点击按钮后,点击如何使用javascript发出请求,并使用ajax MVC Kendo UI网格调用读取方法
- 如何传递html的内容与ajax (MVC)