大家好,请教大家几个问题!谢谢!
1、用AJAX做的留言版,后台更新数据,前台马上看到效果,我目前用的是setInterval()方法过几秒就重新取得数据;此法性能有省耗;如果判断数据库里的留言表是否有更新,添加,删除操作,有再取一次数据,这样应该更好,有什么好的方法知道数据库表是否有更新添加或删除操作呢?2、在回复留言的时候,用的不是弹出窗口,直接在页面上回复,问题来了,因为用了setInterval,几秒重新取数据,结果管理员刚刚输入的内容没了;用的是textarea文本框回复,有没有办法判断如果用户在文本框输入内容的时候,不重新取数据。3、大家用ajax的时候,类似用Repeater列表数据显示的时候一般如何做呢,我是在后台直接用StringBulider循环出div,因为要是用Repeater想达到页面不刷新,添加删除倒是可以在客户端用JS写出来,不过分页也要不刷新的话再用JS写感觉很麻烦了,用StringBulider循环出来的很好用,操作后重新获取一下数据就可以了,不过修改起来很麻烦,请教下大家的建议或者还有其他更好的方法呢?4、很多时候我们都要用Request.QueryString["id"],这样来获取传过来的id,如果我在这个页面多次操作传过来的ID的话,是每次都Request.QueryString["id"]获取呢?还是用ViewState保存起来呢?声明个private static int id来保存呢或其他更好的方法呢,也请教下大家的意见。谢谢!
1、用AJAX做的留言版,后台更新数据,前台马上看到效果,我目前用的是setInterval()方法过几秒就重新取得数据;此法性能有省耗;如果判断数据库里的留言表是否有更新,添加,删除操作,有再取一次数据,这样应该更好,有什么好的方法知道数据库表是否有更新添加或删除操作呢?2、在回复留言的时候,用的不是弹出窗口,直接在页面上回复,问题来了,因为用了setInterval,几秒重新取数据,结果管理员刚刚输入的内容没了;用的是textarea文本框回复,有没有办法判断如果用户在文本框输入内容的时候,不重新取数据。3、大家用ajax的时候,类似用Repeater列表数据显示的时候一般如何做呢,我是在后台直接用StringBulider循环出div,因为要是用Repeater想达到页面不刷新,添加删除倒是可以在客户端用JS写出来,不过分页也要不刷新的话再用JS写感觉很麻烦了,用StringBulider循环出来的很好用,操作后重新获取一下数据就可以了,不过修改起来很麻烦,请教下大家的建议或者还有其他更好的方法呢?4、很多时候我们都要用Request.QueryString["id"],这样来获取传过来的id,如果我在这个页面多次操作传过来的ID的话,是每次都Request.QueryString["id"]获取呢?还是用ViewState保存起来呢?声明个private static int id来保存呢或其他更好的方法呢,也请教下大家的意见。谢谢!
2.可以局部刷新,或者回复的时候用cleaerInterval,不回复再开始,第二种方法较简单.
3.用updatepanel可以解决这个问题.
4. 还是这样取.
2回复框和留言文本框应该是分开的吧 只更新一个就好了
3updatepanel
4用viewstate
回2点,我现在就是想知道:如何知道管理员是在回复的时候,判断某个textarea是否获取到焦点?
回3,用微软的ajax 控件,基本都不用写了。
回4具体呢?
第一种,留言版回复后只有当前回复的人及时更新.这样可以通过JS来实现,容易
第二种,留言版回复后,所以有打开留言版的人都及时更新.这样比较麻烦,而且非常不划算,这就类似一个多人在线群聊工具,实现方式有多种,有在客户端settimeout的,有建长连接的,看你的取舍
4.Request.QueryString["id"] ,如果是在同一个请求中,可用个变量保存,这样效率高些,如果要post可用viewsate,但是post的时候这个id还是在的,直接用Request.QueryString["id"]可节省些viewstate的开销static会出问题的.
3手写ajax分页是麻烦 可以用成型的框架 如ajaxpro
4取URL很好 用ViewState也行 但不能用static保存 static是持久唯一的 会混乱