所以我正处于网络编程的阶段,我已经过了“看,马,我可以将数据放入网格中,它会显示在页面上。”我现在在,哇,这个网站并不像我想要的那样活泼。所以,我启用了Firebug中的“Net”标签,闭上了眼睛,划过我的手指,然后进行了探险。
我注意到的第一件事是我的所有.aspx页面都被“GET”编辑了至少三次。这是正常的吗?如果没有,什么是“正常”?是什么影响了.aspx页面的“GET”?我假设它包括命中数据库并呈现页面上的所有控件所需的时间。这是真的吗?
或许真正让我受益的是我可以为这些与速度相关的问题获得一些“最佳实践”的地方。
需要考虑的事项:
我们正在使用Telerik控件
我当然更像是一个厚厚的客户而不是网络人
修改 以下问题的答案:
修改 屏幕截图添加: FirebugScreenshot http://img187.imageshack.us/img187/5873/firebughelp.jpg
编辑 添加了其他屏幕截图以包含请求标题
修改
添加了链接
答案 0 :(得分:5)
编辑:以下是两个额外页面加载的来源:
<script type="text/javascript"
src='<%# ResolveUrl("~/Common/jQuery/jquery-1.3.2.min.js") %>'>
</script>
<script type="text/javascript"
src='<%# ResolveUrl("~/Common/jQuery/jquery-ui-1.7.1.custom.min.js") %>'>
</script>
正如您在渲染版本中看到的那样,src属性为空,导致它将页面加载两次。
<script type="text/javascript" src=''></script>
<script type="text/javascript" src=''></script>
您可以通过使用runat服务器标记并让它自动解析网址来解决此问题。
<script type="text/javascript"
src="~/Common/jQuery/jquery-1.3.2.min.js"
runat="server"
ID="jQuery"> </script>
<script type="text/javascript"
src="~/Common/jQuery/jquery-ui-1.7.1.custom.min.js"
runat="server"
ID="jQueryUI"> </script>
(或将&lt;%#%&gt;更改为&lt;%=%&gt; - 因为您需要使用输出字符串而不是绑定语法的版本。)
删除原始答案,因为它与实际问题无关。
答案 1 :(得分:3)
这些不太可能是AJAX请求,因为每个请求的响应长度都相同。
我也排除了img元素的空src属性的错误,因为这只会导致一次重新加载页面,而不是两次。
Telerik RadEditor存在一个可能导致此类情况的已知错误,但您未在使用的控件列表中提及它。以下是有关它的更多详细信息:
http://www.telerik.com/community/forums/aspnet-ajax/editor/radeditor-forces-page-load-twice.aspx
您可能还想在页面上注释掉Telerik控件以查看是否有帮助。
答案 2 :(得分:1)
浏览器通常应该只访问服务器一次,并且查询数据库所需的所有时间以及应该限制在该请求中的内容。如果您正在使用ajax控件,他们可能会更多次查询服务器以获取新数据。您可以使用firebug检查请求和响应,并查看它们包含的内容。
多次请求aspx的一个常见原因是在没有任何SRC属性的情况下呈现IMG标记。这将默认为查询图像源的同一页面。如果是这种情况,那么您可以检查firebug中的请求标头,看看它是否需要图像。
您还可以转到控制台并键入document.images以获取所有图像的列表。在页面上看不到的那些将显示略微褪色。检查那些空白的SRC。
答案 3 :(得分:1)
如果您在开发环境中并且&#34;启用浏览器链接&#34;这通常会发生。在VS 2015/2013中。 要避免Firebug中显示的多个GET请求,请取消选中&#34;启用浏览器链接&#34;从工具栏。 如果您查看页面源,则在检查&#34;启用浏览器链接&#34;时,会发现脚本标记已添加到页面中。这会导致对iis服务器的Get / Post操作。有关详细信息:http://www.asp.net/visual-studio/overview/2013/using-browser-link
答案 4 :(得分:0)
浏览器对页面中包含的每个资源发出GET请求,包括js文件,图像,css文件......
答案 5 :(得分:0)
这可能是很多事情 - 请求的重要部分就是它的内容。
通常,您会看到多个ASPX页面请求,因为它会加载JavaScript库以执行验证和回发。控件还可以嵌入javascript作为资源,然后创建其他GET请求,通常用于WebResource.axd和ScriptResource.axd。
答案 6 :(得分:0)
如果您启用了安全性,则可能是质询和响应请求 - 首先是401然后是200.您将获得哪些响应代码?