asp:Image
代码的执行速度是否比普通的HTML img
代码快?
我在网页上显示了20张图片(小图片),我不知道要使用哪一张。
答案 0 :(得分:9)
runat="server"
)与服务器端对应的总是更快,因为它们不执行任何额外的服务器端逻辑或消耗其他资源。它们也不会向页面的视图状态添加任何内容。
简单的服务器端控件(转换为单个HTML元素的控件)与普通HTML元素没有区别。但是,复杂的服务器端控件(如日历)在HTML元素数量方面很复杂,因此需要一些额外的浏览器资源。但是使用通常的HTML制作相同的东西/功能会产生或多或少相似的结果。因此我们可以假设客户端的速度相同。
仅当您需要向其添加一些服务器端处理时才使用服务器端控件。如果没有,请使用普通的HTML控件。它们将在服务器上更快地处理,不会添加任何视图状态,并且将在客户端上以与服务器端对应的速度相同的速度工作。
对于任何具有服务器端等效项的HTML元素(例如服务器端具有img
的{{1}})都是如此。当没有客户端等价物(如日历)时,你必须使用服务器端控件或使用一些提供这种功能的客户端库(例如jQuery有一个日期选择器)。但是你必须非常了解Asp.net的处理能力才能有效地结合这两者。
答案 1 :(得分:2)
仅在必须在服务器端操作它时才使用asp:image(动态设置标题,源,可见等)。
因为asp:image在服务器端“运行”,所以它消耗了一些内存和CPU使用。
答案 2 :(得分:1)
如果您不需要以编程方式与其进行交互,请使用<img />
标记。这个开销较少(虽然使用asp:Image的开销很小)。
答案 3 :(得分:0)
不,在加载图像方面完全没有性能差异。 asp:Image
控件生成img
标记,因此到达浏览器的结果或多或少相同。
如果您想从后面的代码中控制它的属性,asp:Image
控件很方便。
答案 4 :(得分:0)
img标签肯定会更快,因为没有服务器端处理,也没有ViewState(可以禁用)。
通常,如果您不需要动态设置属性,请不要使用<asp:Image ... />
请记住,您可以随时执行以下操作:
<img src='<%= MyPathMethodInCodeBehind("some value") %>'
alt='<%= MyClass.SomeMethod(someParam) %>' />
然而,差异非常小,并且认为它不值得注意,是的,即使对于20张图像也是如此。