asp:image或img

时间:2011-02-12 10:44:45

标签: asp.net html performance

asp:Image代码的执行速度是否比普通的HTML img代码快?

我在网页上显示了20张图片(小图片),我不知道要使用哪一张。

5 个答案:

答案 0 :(得分:9)

在服务器端

通常使用的HTML元素(没有设置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张图像也是如此。