none
用户控件与虚拟目录问题 RRS feed

  • 问题

  • 最近在弄一个电子商务网站,有一些问题不解,请高人帮忙回答下,谢谢。 在ASP.NET网站中使用用户控件对性能有多大的影响呢,我现在用了两个,一个就是网站头,一个就是网站底部,毕竟这两块的内容变化不大,万一改个版式什么的,改下用户控件就好了,但不知道对性能影响大不大,我总想尽可能的少占用服务器资源(服务器上还有ERP,压力还是很大的。),我甚至还有一个方案,网站底部关于备案信息那块,没有任何操作,我甚至想将这一块的内容写成一个静态的字符串,在前台页面直接输出这个字符串,还有一个问题是使用用户控件后的路径问题,因为我把一些脚本引用也写在用户用户控件里了,但由于页面位置不同,这些脚本的路径也不相同,目前我尝试的是在网站运行的时候将虚拟目录路径取出来,然后再追加到脚本路径前面,但总觉得这样有点麻烦,使用“/”的话,又没法包含虚拟路径,使用“~/”好像没啥效果,不知道与没有更好的解决方案,谢谢。
    2010年12月24日 3:37

答案

全部回复

  • 你好:

    就我所知。一般情况下,用户控件是不会有多大的性能影响。特别是用户控件没有太多操作的情况下。当然你可以尝试将用户控件的内容用字符串直接输出到页面上。也是可行的。而且你也可以通过缓存用户控件的内容来提高程序的性能。用户控件级缓存和页面级缓存类似,不同的是可以只缓存页面局部的用户控件,对于不需要整页缓存的页面来说是种不错的解决方案。

    http://www.cnblogs.com/China-Dragon/archive/2010/08/16/1801069.html

    针对于路径,你可以直接使用全路径。

    <img src="<%=System.Web.VirtualPathUtility.ToAbsolute("~")%>/common/images/spacer.gif" /> 
    //where "common" is a folder in the root of your web

    或使用Resolveurl方法。

    http://forums.asp.net/p/1440906/3267767.aspx#3267767
    http://forums.asp.net/p/1444777/3285381.aspx#3285381

    http://forums.asp.net/t/966040.aspx
    http://forums.asp.net/t/1374314.aspx

    希望对你有所帮助。


    I am here!
    2010年12月27日 5:26
    版主
  • 我想使用用户控件级缓存应该是个不错的选择,虽然将页面内容组成字符串输出到页面也是个不错的选择,但并不利于维护,而且也显得结构不是很清晰,至于虚拟目录问题,之前也考虑过你说的这种方式,但每次都需要调用方法来得出虚拟目录,看来还是没有省事的办法啊,我还是把虚拟目录作为一个静态变量放在那吧,省掉了System.Web.VirtualPathUtility.ToAbsolute("~")而已,谢谢你的回答。
    2010年12月31日 2:43