• 2 Ways Thinking In Ajax


    至今来看,ajax的模式有两种,就是Google模式和.NE­T模式。

    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­之分,然后把你希望在客户端执行的函数前面加一个例如[Clie­ntScript]标记那么该段代码就会在客户端运行,那时不是­很美妙的事情?而且这也符合MS的SmartClient战略哦­!

  • 相关阅读:
    MySQL优化
    右键菜单怎样添加“在此处打开命令提示符”选项
    MemSQL与MySQL不兼容问题总结
    Ubuntu Server 18.04 修改网路配置
    How to Install MemSQL
    Metro UI 菜单(Winform)
    Windows Server 2008 系统设置集合
    推荐个好东西swoole,php如虎添翼
    php的swoole扩展中onclose和onconnect接口不被调用的问题
    关于编程语言(转/收藏)-原文作者:韩天峰(Rango)
  • 原文地址:https://www.cnblogs.com/cathsfz/p/536387.html
Copyright © 2020-2023  润新知