作者tomex (tomex_ou)
看板C_Sharp
标题Re: DataSet的观念上的问题.....离线存取?
时间Tue Dec 20 11:20:02 2005
※ 引述《youcankillme (这里是谁?你是哪里?)》之铭言:
: DataSet 主要推的特色就是「离线存取」的特色
: 使资料库的资源不会被一个使用者占住
: 如果要使用同一份 DataSet的话
: 就必须重新 Fill一次 DS
: 感觉没有「离线存取」的味道了
对web页面而言,每次的读取连线都是独立的
因此上次所读取的资料都会逸失。
这是web的特性,否则若强记资料(透过session或control viewstate)
就会耗损server的记忆体使用。
: 或者是
: 它所谓的离线存取
: 是指Database 和 WebServer 之间的存取关系
: 也就是说 WebServer先将资料读到自已的记忆体中
: 便把和 DB的连结切断
: 在自已的记忆体中进行编辑
: 它标榜的「离线存取」是指这个意思吗?
是的,就是这样。
: 我一直认为书上写的「读到自已的记忆体」
: 是指client端的记忆体
不是client端的记忆体(mm)
记住,asp.net是server-side的语言,只有javascript才用到client的记忆体
当你填充dataset,是server端先接收你的请求,它(server)自己到db读取资料
放在自己的mm中,作运算,接着把结果response为html给client。
所以,为了节省空间,server端不可能为client记住这资料的。
: 到底那一个解释才是对的呢?
: 还是我的原始码本身写法有问题
: 才使DataSet没办法重复使用
: 希望有人能理解我的confusion
要重复使用资料,请用session或透过control的viewstate(小量资料)
但一样不建议,因为少了即时性
强烈建议重新再捞一次资料,别担心效能
sqlsrv会把上次相同的查询结果直接从mm捞给你,并不会再重作一次
因此效能还是很高的。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 211.78.132.15
1F:推 youcankillme:非常感谢 <_ _> 12/20 17:06