熟悉网页组件开发的朋友进来看看(关于ASP组件开发) ( 积分: 200 )

  • 主题发起人 主题发起人 ZYONG
  • 开始时间 开始时间
Z

ZYONG

Unregistered / Unconfirmed
GUEST, unregistred user!
我们通常看到的ASP分页程序总是先执行查询返回全部符合条件的结果集,然后根据设定的pagesize和pageno在结果集中提取指定的页面显示在网页上,当进行下一页的操作时再执行一次查询。这样做的问题是:
每一次分页都必须执行一次查询操作,执行完再根据要求显示指定的页面。这无疑是很浪费资源的。
既然由于ASP本身的弱点没有办法解决问题,是否可以通过服务器组件的设计来解决它?设计思路是:
1)通过组件来返回结果集,只执行一次查询。
2)使用结果集来实现分页显示。即:实现分页时,只需要提交页面信息(pageno)来得到数据。

大家有没有比较好的方法可以实现它,或者有没有其他更好的思路。





 
我们通常看到的ASP分页程序总是先执行查询返回全部符合条件的结果集,然后根据设定的pagesize和pageno在结果集中提取指定的页面显示在网页上,当进行下一页的操作时再执行一次查询。这样做的问题是:
每一次分页都必须执行一次查询操作,执行完再根据要求显示指定的页面。这无疑是很浪费资源的。
既然由于ASP本身的弱点没有办法解决问题,是否可以通过服务器组件的设计来解决它?设计思路是:
1)通过组件来返回结果集,只执行一次查询。
2)使用结果集来实现分页显示。即:实现分页时,只需要提交页面信息(pageno)来得到数据。

大家有没有比较好的方法可以实现它,或者有没有其他更好的思路。





 
我觉得较好的办法是查询的时候就分页,好像大富翁就是这样的作吧
 
寫一個通用的分頁函數, 好好找找, 我看到過
 
TO 迷糊:就算是查询的时候就分好页了,那向服务器申请页面的时候怎么返回需要的页面呢?ASP查询时设定结果集的pagesize就是分页的过程了,问题的实质是当请求下一页的操作时,ASP又要重新查询和进行分页。我不知道大富翁是怎么做到的,请指点一二。
TO xyyct:一個通用的分頁函數能解决问题吗?

请关注问题的关键,即:当我使用IE浏览器第二次向服务器请求数据时,如何使用前一次查询返回的那个结果集?而不是再次查询生成一个新的结果集。
 
用ASP自带的分页属性设置不好吗?
按推测,服务器不会为客户端保留筛选的结果集,因为存在资源的开销。
 
TO:fei_l

1、ASP并没有自带的分页属性,它实际上是使用ADO等数据引擎的分页属性。
2、就是因为资源开销的问题才要避免不断重复的查询操作呀。
现在ASP的分页过程是:查询一个大的结果集->取得分页数据->释放资源(提交次页申请)->查询一个大的结果集->取得分页数据.....
要达到的目的是:查询一个大的结果集->取得分页数据->取得次页数据->...->释放资源
你说哪个更浪费资源?
 
查詢的同時也有資料更新呀,如果不每一頁都查詢,如何能保證資料是最新?
 
to: hotboys
谢谢你的提醒,但这个问题可以不考虑或者通过其他方式解决。
即使每一页都查询,在有新增数据的情况下,分页信息与上次查询的分页信息也不会相符,不是吗?
 
这个问题看来没人回答,也许是IIS的机制不允许吧。
那么换一个问题吧:
如何让网页接收ASP服务端组件返回的数值,从而让IE客户端根据数值实现类似于进度条的操作?
例如:邮件组件在发送邮件时返回发送进度,IE可以据此显示邮件发送的进度条。
 
我不清楚ASP中是否有缓存机制, ASP.net中是可以实现缓存的
 
幻影大人说得对,但是:
如果是用asp.net实现就用不着写服务器组件了。
 
可以用session来做~~~像这样
session("RS")=Server.createobject("adodb.recordset")
 
TO ZYONG:

不要意思,我是来求档的

关于checkbox控件不能设置transparent属性的问题

jo_fox@163.com
 
写个第3方组件。不就一切搞定了?
 
要实现楼主的方法不是不可以,就是用session保存查询到的大结果集,然后根据提交次页申请返回相应的页数据。这样就可以实现。
但是楼主要弄清楚,这样做,虽然可以避免重复的查询的开销,但是却大大的增加了asp服务器的负荷,严重降低服务器性能:能同时服务的用户数明显降低!
楼主的方法不可取!!!!!
 
To: qdlover
不好意思,出差了几天。
到这里下载控件:
http://www.taiee.com/download/ZyongCheckBox.rar
 
谢谢大家。

狂风123和firstlove提出了在ASP下解决问题的正确方法。
幻影大人、fei_l也和上面两人一样了解问题的本质。
同样也感谢hotboys和迷糊的回答。

事实上我和你们一样了解使用SESSION可以达到这种效果,正是因为不想使用开销很大的SESSION,所以希望开发一个组件来完成它。我想这是因为IIS的访问机制最终导致的系统开销问题,因此也决定不要强求这种方法的实现了。

还是结帖了吧,谢谢大家,也包括crossrowman和xyyct,虽然你们的答案不是我所需要的,但大富翁论坛不景气的今天,你们的热心也是我们所应该崇尚的。
 
后退
顶部