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">
我使用了style属性来避免两次请求页面。但是,我仍然需要知道:为什么有两个要求?我想了解避免重新请求页面的根本原因,因为它可以使任何网站变慢。
编辑:该问题与内联样式与使用CSS文件无关。这是为了避免出于性能原因而无意中重新请求页面。
注意: On_Load可以被调用两次,原因有多种,请参阅ASP.NET Page.OnLoad executes twice
<img src="#"> or <img src="">
答案 0 :(得分:3)
我非常确定background
元素的table
属性需要图片的网址。 (我认为它甚至不是该元素的正确属性,或者至少我从未见过它。可能有特定于浏览器的行为。)
如果是这种情况,那么这种类是有道理的。在问题的最后你注意到:
- 页面或母版页包含
<img src="#">
或<img src="">
所以这似乎就是这里发生的事情。浏览器将该颜色标记解释为URL并向服务器资源发出请求以尝试获取它,因为哈希URL本身默认为当前页面。在锚标记中,它只会将焦点移动到页面上的该标记,但是在资源引用标记中(例如img
),但在这种情况下,table
上的属性需要URL )它必须提出另一个请求。
更新:该属性上的一点点Google搜索显示了类似于this one的多个页面,这似乎表明它正在等待一个网址。
实际上,table
元素似乎正式具有background
属性。至少not in HTML 4或HTML 5。
答案 1 :(得分:-1)
background
属性不接受十六进制颜色作为输入。无论如何你应该使用CSS。请改用background-color
CSS属性。
请参阅此小提琴,因为background
属性无效。
这适用于CSS属性。