ASP

本类阅读TOP10

·asp常用数据库连接方法和技巧
·VisualStudio.NET_2003及其 MSDN 下载地址
·session的用法具体解说
·MD5加密算法 ASP版
·JavaScript实现的数据表格:冻结列、调整列宽和客户端排序
·无组件生成BMP验证码
·一些常用的辅助代码 (网络收藏)
·ASP.net中md5加密码的方法
·ASP模拟MVC模式编程
·ASP.NET编程中的十大技巧

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
修正IEWebControls中TreeView的一处bug

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

状况:多台Web服务器作负载平衡时,如果将XML字符串流作为数据源赋给TreeView,速度将很慢。
一般情况下不会发现,但是确实存在

原因:TreeView和TreeNode数据绑定时是先将传入的XML当作URL处理,出错后才当作XML流。而在多台服务器的情况下由于页面在那台机器是不确定的,也就是说其URL不确定,是由负载平衡机制实时定向到某台服务器的。

修正方法:
增加一属性TreeNodeSrcIsXmlStream设置XML是否为字符串流。
修改方法ReadXmlSrc
说明:先根据属性来判断是否为XML,而不是用异常处理来判断

完善点则再增加一方法IsXml在取属性时调用,如果属性为空则用此方法判断TreeNodeSrc的类型
功能:判断字符串是否为XML
参数:string str   要判断的字符串


源码:
try
{
 reader = GetXmlReaderFromUri(TreeNodeSrc, TreeNodeXsltSrc);
 bReading = reader.Read();
}
catch
{
 // couldn't read.  Try TreeNodeSrc as a string.
 reader = GetXmlReaderFromString(TreeNodeSrc, TreeNodeXsltSrc);
 if (reader != null)
  bReading = reader.Read();
}

改为:
if(TreeNodeSrcIsXmlStream)
{
 reader = GetXmlReaderFromString(TreeNodeSrc, TreeNodeXsltSrc);
 if (reader != null)
  bReading = reader.Read();      
}
else
{
 reader = GetXmlReaderFromUri(TreeNodeSrc, TreeNodeXsltSrc);
 bReading = reader.Read();
}

htc中可能也存在,没看代码,要改的话原理一样。

结论:
用try...catch...这种异常处理机制来进行条件判断是不好d行为。




相关文章

相关软件




月光软件程序下载编程文档电脑教程网站设计网址导航网络文学游戏天地幽默笑话生活休闲写作范文安妮宝贝
电脑技术编程开发网络专区谈天说地情感世界游戏元素分类游戏热门游戏体育运动手机专区业余爱好影视沙龙
音乐天地数码广场教育园地科学大观古今纵横谈股论金人文艺术医学保健动漫图酷二手专区地方风情各行各业

月光软件站·版权所有