2 Ways Thinking In Ajax
2006-10-22 14:21 Cat Chen 阅读(514) 评论(0) 编辑 收藏 举报至今来看,ajax的模式有两种,就是Google模式和.NET模式。
Google模式就是服务器仅仅接收xml和返回xml,其他一切工作都是客户端做。开发的重点在于客户端,然后xmlhttp仅仅用于发送和接收数据,服务器端则是仅处理数据的逻辑,如果把xmlhttp看作"透明代理"的话,那么这个设计就是属于客户端设计了。
.NET模式则刚刚好相反,虽然.NET说是把WebForm当作WinForm开发,但它不是透明掉服务器端而是透明掉客户端,为什么这样说呢?在你不需要JS的时候,你也可以当它是透明掉服务器端,当你需要JS的时候,你就会觉得它是透明掉客户端了--它没有考虑过你要大量运用JS的情况。
Google模式看上去很容易实现,但当你实际操作的时候你就会发现debug的痛苦程度!我甚至用js封装过专门的ajax库了,这个库包括自动创建一个layer浮在最顶动态更新调试信息(或者说是trace),但还是觉得非常痛苦!
.NET模式的痛处则在于JS--用到ajax怎么可能不是大量JS,而这是.NET要避免的问题--.NET希望页面内的所有元素都不是全局存在而是局部存在的,这样的设计才是正交的,如果所有的逻辑都是拥有全局影响的权利,那么.NET建立的一切稳定基础都会被打破,然而JS正是这样做着。.NET成功把HTTP和HTML都对象化了,这依赖于以前ASP就有的Request/Response模型和XHTML DOM模型。然而JS它无法对象化,除非我们能够创造一个JS CodeDOM。
现在Ajax的未来落在了Avalon的身上,Avalon本身就是允许开发者用XAML描述界面并且用.NET描述逻辑,这对于习惯XHTML+JS的Web开发者来说是件好事。然后它也做到了客户端和服务器端语言的统一,而且是统一的CodeDOM。而且MS可以采取一种很好的做法来让.NET开发者适应,就是开发的时候服务器端代码和客户端代码还是混边,还是当作没有B/S之分,然后把你希望在客户端执行的函数前面加一个例如[ClientScript]标记那么该段代码就会在客户端运行,那时不是很美妙的事情?而且这也符合MS的SmartClient战略哦!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构