如题,我在学习《asp.net2.0揭秘》时,在自定义控件那章看到有关Ajax的源代码,是验证用户名输入是否重复的,其中包括一个.cs的控件类,一个中间层的.js,以及一个.aspx文件(这种情况下生成的网站为原书网站)。当我把.js文件删除并且修改.cs文件中的内容时,功能依然能实现(这时生成的网站为修改网站)。下面是我的疑问:(1)我在.aspx中用一个Label控件通过在Page_Load中加入对IsPostBack的检查发现原书网站和修改网站每次提交数据都会导致IsPostBack事件的触发,是否说明局部的修改和全网页的修改都会导致回发,不过数据量不同而已?
(2)我应该如何了解使用Ajax和不使用Ajax的同一种功能的实现到底有什么区别?(我的想法是在页面上加一个控件来作为对照组,是否可行?如果可行如何实现?)
lz一直在线,问题解决后马上结贴,谢谢各位了~

解决方案 »

  1.   

    不会的,ajax不在page的生命周期内。
    也不能访问page类之中的其他公共方法。
      

  2.   

    一般net中ajax是用ashx来处理,如果你用aspx来处理,那aspx的生命周期你是无法避免的
      

  3.   

    使用区别就是
    普通方法
    可以使用page生命周期中的任意事件,包括post绑定等;可以访问page类的公共方法,变量
    ajax
    只能调用对应方法,不参与page的init,load,render等,不能访问page类的其他公用资源
      

  4.   

    好吧,二楼应该是对的,因为.apsx文件的关系我无法避免aspx的生命周期,大概就是Ajax也会导致IsPostBack为真的原因,问题
    (2)在这样的情况下,我如何验证使用Ajax与不使用Ajax的区别
    PS:我对是否使用Ajax的理解就是是否有.js的中间层,不知道这样是否正确?事实上原书网站(有中间层)
    和修改网站(无中间层)都可以实现我要的功能。
    F5狂刷新中。
      

  5.   

    2说的因为用的aspx所以page的生命周期无法避免,但是ajax应该只是刷新部分数据的,不会刷新整个页面,我是否可以定义一个每次从服务器回传就会改变的控件,如果可以,用如何定义?
      

  6.   

    我建议楼主现在先不要去管ajax,继续学习.net后面的章节。
    因为.net的webform是把网页请求的本来面目封装起来了,你如果在webform的基础上去了解ajax的话只会知其然不知其所以然,从而误导了自己。先把webform用熟了来,再去了解网页请求本质的东西,这样容易搞清楚一点。其实学web编程的时候本就不该从.net入手,因为虽然.net用起来很简单是建立在它封装了很多本质的东西,对初学者会造成误导。。(我以前就是受害者之一)应该用php这种村纯粹的web编程语言入手,从了解web交互的本质开始
      

  7.   

    开始的时候应该多动手,实现别人的例子程序,这样一是可以增加自己的成就感提高自身学习的兴趣,二是可以更快的熟悉.net,建议可以去找一些简单的web系统看源码,毕业设计什么的,自己试着模仿,这样上手的速度是最快的。
      

  8.   

    .cs 方法  哪怕已只是跟新一个标签的Text  也是会触发Page_Load事件ISPostback判断是第一次加载,还是回发事件ajax 通过js调用  然后通过js改变页面  js调用后台方法是不会触发本页面的PAGE_LOAD方法
      

  9.   

    jquery中ajax好像可以设置同步和异步的
      

  10.   

    Ajax 请求和你在浏览器中直接输入网址的请求,对服务器而言,是没有任何区别的。所以如果请求的是 aspx 页面,其页面生命周期也与普通页面完全一样。你可以直接通过 Ajax 请求去获取一个正常页面的源码,来和浏览器中输入网址获取同一个页面的源码对比一下看看,就知道了。