包括 web.config 文件也可以在 dll 中动态创建的。那样就是全自动化了。好一点的控件里面都是这样做的。
昨天我还在想这个东西,但一想到asp.net 2.0已经内建支持动态资源了,就懒了一下:} 没想到上来一看,真是瞌睡来了遇到枕头~~ 感谢bestcomy兄share:)
没看明白啊
具体怎么部署?
<httpHandlers>
<add verb="POST,GET" path="Bestcomy/ComboBox.ashx" type="Bestcomy.Web.UI.WebControls.PageHandler, Bestcomy.Web.UI.WebControls" />
<add verb="POST,GET" path="Bestcomy/InputFile.ashx" type="Bestcomy.Web.UI.WebControls.PageHandler, Bestcomy.Web.UI.WebControls" />
</httpHandlers>
起到什么作用?
麻烦讲一下
当浏览器调用Bestcomy/InputFile.ashx文件时,IIS会把请求交给Bestcomy.Web.UI.WebControls.PageHandler这个类去处理,并不要求Bestcomy/InputFile.ashx真实存在这个文件。Bestcomy.Web.UI.WebControls.PageHandler则可以通过输出数据流来完成Bestcomy/InputFile.ashx的模拟。
但是这个方法我觉得小型控件问题不大,大型的控件特别是需要调用的脚本文件较多的情况下,封装在.dll里也不是十分合适,一方面修改起来实在麻烦,另一方面config也要配置一大堆
Bruce 已经讲得很清楚了,看看Bestcomy.Web.UI.WebControls.PageHandler类就知道具体的处理机制了
bestcomy 兄弟
以前我们讨论大文件上传时,我改过你的一个例子,不知道还记得吗
那个是将html文件做成了资源文件,动态加载显示上传进度,当然也可以动态加载脚本,WebHtmlEditor就是采用了这种方式加载javascript进行处理
感觉你的这个方法要在Web.Config中进行配置稍微麻烦一些,希望可以交流一下
你说的这种方式有个问题就是需要自动向web服务器写文件,很多时候因为没有写权限出错,用这种handler的方式就是不需要向web服务器写文件,感觉程序比较“干净”,完全是个人偏好。iewebcontrol就是用的你说的那种方式。
思想都是一样的
我的方法确实要向服务器写一个文件,这个文件也可以上传上去,如果程序发现文件以存在并且和资源文件中的版本一致就不会再写
关于Web控件开发我的想法不知道是否正确:从单个Web控件开发来考虑可以将脚本嵌入到Web控件的DLL中,这样带来的一个后果是每次浏览该Web控件,这些脚本将会传送一次到客户端(从一些资料看:只有引用方式的CSS文件和JS文件才会缓冲到客户端)。 在实际项目中需要考虑的一点是,随着应用的复杂度加深,你可能会应用大量的这类控件,这些控件造成的网络流量可能就会成为需要考虑的问题了,因此我在项目中开发Web控件时并不考虑这个Web控件的通用性,在Web控件中以引用的方式调用项目中的公用CSS文件和JS文件或HTC文件(通常都是需要配合一定的目录结构以便获取)
"从一些资料看:只有引用方式的CSS文件和JS文件才会缓冲到客户端"
可否列出相关资料?
是否明确说过用httphandler方式的无法缓存到客户端呢?
在Response时设置其缓存应该是可以做到客户端缓存的,实际测试的时候我也发现对脚本的更改需要清掉IE缓存之后才生效