我接触.net没有多久。以前是做JAVA的。现在刚刚研究了一段时间的asp.net。好象彻底的搞晕我以前对这个request--response的观念/请各位老手向我讲解一下以下几个比较突出的问题:
1,postback:刚接触这个的时候感觉这个太伟大了。似乎解决了一切页面动态的问题。一个dropdownlist选项改变,从而要求立刻改变页面上其他显示内容。以前JAVA中立刻想到AJAX,可现在一个POSTBACK就搞定了。可我不理解的是这个postback是重新刷了页面,那也面的状态是怎么保留的呢?有了postback,是不是AJAX已经没什么用了呢?在这两者之间。又该怎么进行选择呢?

解决方案 »

  1.   

    很多第3方控件对ajax做了很好的封装。viewstate用来保存页面的数据状态
      

  2.   

    1/以下是我的理解
    ajax和POSTBACK并不冲突,POSTBACK只是在服务器端未改动的代码不再自动生成,但仍有整页的B/s交互
    但AJAX只与服务器传输那postback的一部分,是基于POSTBACK之上的
    2、再者,个以为ispostback只是一个标记如果用户是直接访问的话就是假,用表单post过来就是真
    应该很好理解吧(表单都是.net自己生成的),所以保留并不奇怪,从前你也能保留,只是从前你自己写的
    如username=request.form("username")这样的代码被系统自己做了
    3、没必要选择吧,两个都用最好
      

  3.   

    可以参考我贴的几段代码:http://community.csdn.net/Expert/topic/5328/5328527.xml?temp=.5083734
    http://community.csdn.net/Expert/topic/5293/5293795.xml?temp=.9647486
      

  4.   

    可我不理解的是这个postback是重新刷了页面,那也面的状态是怎么保留的呢?
    ===============================
    viewstate 是asp.net 服务端动态生成的,可以根据用户的提交来确定状态
      

  5.   

    有了postback,是不是AJAX已经没什么用了呢?在这两者之间。又该怎么进行选择呢?
    ——————————————————————————————————————————
    不是。postback是适应整页刷新的web编程习惯的,至今这个仍然是占据网页的绝对的主流,甚至搜索引擎都几乎只是对这些支持。asp.net2.0项目组为ajax开发了callback机制,可以参考:http://www.google.com/search?hl=zh-CN&newwindow=1&rls=com.microsoft%3Aen-US&q=asp.net+icallbackeventhandler&btnG=Google+%E6%90%9C%E7%B4%A2&lr=lang_zh-CN%7Clang_zh-TW然而很多人已经开发了asp.net上可以使用的ajax框架。asp.net ajax甚至是模仿这些人的某个实现而实现的,而不是在asp.net项目组内部与asp.net系统设计紧密捆绑的,我看asp.net ajax早先称为atlas还有点自知之明,称为asp.net ajax有名不符实的感觉。这些ajax框架最新版基本上都能自动维护页面状态。不考虑狭义的技术实现形式,广义上的ajax是web的未来。除了那些静态页面,不具有ajax特性的web动态网站应该难以生存。我觉得这大概是2年就会达到的。ajax仅下载页面的百分之一的内容,可以发挥dhtml、javascript的动态更新的优势。现在的web应用程序在服务器端的处理还是面向postbck,每一次都装入整个页面对象,ajax的广泛使用会使得web服务端的机制发生根本变化,以适合客户端的频繁、快速的访问。凡是普通人不动脑子都可立刻感到差别的新鲜的东西,不管它有背后有多少技术,都会成为拉动那些高深的所谓技术进行改变的驱动力。
      

  6.   

    开发web mis就更明显。在录入订单的时候如果要查询物品或者录入物品资料,如果需要切换好2、3个页面就很笨拙了。web应用程序模仿c/s应用程序的ui一样好用,并且又具有瘦客户端、实时集中处理业务逻辑的特性(例如一个有100个分店的零售企业总部的一台或者几台服务器可以实时处理所有商店的采购结算业务),这样的系统的ui设计将来绝对靠ajax技术推动。