asp.net - 内联样式会导致额外的请求

标签 asp.net performance iis

On_Load 在一个页面中被调用两次。使用Firebug后我发现它请求

http://localhost/default.aspx

然后它会发出另一个请求

http://localhost/default.aspx#ced3db

我搜索"#ced3db"并在 <table> 中找到它在页面中。当我删除其背景属性时,问题就消失了。

<table width="430" height="281" border="0" 
    background="#ced3db" cellpadding="0" cellspacing="0">

我使用了样式属性来避免请求该页面两次。但是,我仍然需要知道:为什么会提出两个请求?我想了解避免重新请求页面的根本原因,因为它会使任何网站变慢。

编辑:这个问题与内联样式和使用 CSS 文件无关。这是为了避免出于性能原因无意中重新请求页面。

注意: On_Load 可能因多种原因被调用两次,请参阅 ASP.NET Page.OnLoad executes twice

  • AutoEventWireUp 为 true,并且您覆盖 On_Load。
  • 用户控件包含 AutoEventWireUp 且值为 true。没试过。
  • 页面或母版页包含 <img src="#"> or <img src="">

最佳答案

我很确定 background table 的属性元素需要图像的 URL。 (我认为它甚至不是该元素的正确属性,或者至少我从未见过它被使用。可能具有特定于浏览器的行为。)

如果是这样的话,那么这种类型就有意义了。在问题末尾您记下:

  • The page or master page contains <img src="#"> or <img src="">

看来这就是这里发生的事情。浏览器将该颜色标签解释为 URL,并向服务器资源发出请求以尝试获取它,因为哈希 URL 本身默认为当前页面。在 anchor 标记中,它只会将焦点移动到页面上的该标记,但在资源引用标记中(例如 img ,但在本例中 table 上的属性需要 URL),它必须提出另一个请求。

更新:对该属性进行一点谷歌搜索会发现许多类似于 this one 的页面。 ,这似乎表明它需要一个 URL。

确实,table元素似乎正式没有 background属性。至少not in HTML 4HTML 5 .

关于asp.net - 内联样式会导致额外的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9605772/

相关文章:

c - 在判断一个数是否为质数方面,递归迭代方法是否比纯迭代方法更好?

html - Firefox 3.5 "hangs"呈现 TABLE 时

javascript - 网站对新选项卡中打开的链接可以有多少控制权?

performance - 在 Windows 上选择 Google API(API 级别 17 或任何其他 API 级别)时,Android 模拟器不会加载

asp.net - 服务不可用,正在关闭传输 channel 。服务器响应为 : 4. 4.2 等待命令时超时

c# - asp.net 中的 Paypal 快速结帐

c# - IIS 中创建的线程能否通知其超时?

php - $_SERVER ['REMOTE_USER'] 是否被视为 'safe' ?

jquery - 在 JavaScript 中获取当前 session 值?

c# - asp.net 自定义控件属性依赖于另一个属性