大家好: 我问个很基本的问题:希望能够得到尽快回复,谢谢! 公司希望能够架设个asp.net的server用来测试(asp.net我是新手), 通过访问页面来自动计算目前的上网速度. 我的预期处理方式期望:在Page_Load中记录个初始时间time1, 然后在Page_LoadComplete定义个时间time2, 然后拿整个页面的大小除以(time2-time1)
得出客户端当前的每秒下载速度.实际: 在客户端好象是大图片还没来得及加载完毕,Page_LoadComplete就已经调用, 并且传出数据, 那么这样的数据肯定不准了.
所以我希望能够有高手解答这个问题, 我很困惑,谢谢!
ps: 计算客户端页面加载从开始到完毕的时间 如果有javascript的话方法1: 用(document.readyState != "complete")来判断, 可是这个只能用在
IE, FireFox是不支持的.方法2:用Ajax实现,可是那个东西我很困惑, 看不懂.所以考虑能否用asp.net服务器端(C#)相关的页面函数来辅助判断. 如果有哪位前辈有相关的解决思路, 还请告之一二, 指点迷津, 万分感谢!
得出客户端当前的每秒下载速度.实际: 在客户端好象是大图片还没来得及加载完毕,Page_LoadComplete就已经调用, 并且传出数据, 那么这样的数据肯定不准了.
所以我希望能够有高手解答这个问题, 我很困惑,谢谢!
ps: 计算客户端页面加载从开始到完毕的时间 如果有javascript的话方法1: 用(document.readyState != "complete")来判断, 可是这个只能用在
IE, FireFox是不支持的.方法2:用Ajax实现,可是那个东西我很困惑, 看不懂.所以考虑能否用asp.net服务器端(C#)相关的页面函数来辅助判断. 如果有哪位前辈有相关的解决思路, 还请告之一二, 指点迷津, 万分感谢!
代码是逐行读取的
你在load最开始定义time1, load末尾定义time2
就行了。
剩下的思路和你一样
$(document).ready(function()
{
// Your code here...
});原文引用:
window.onload()是传统javascript里一个能吃苦耐劳的家伙。它长久以来一直被程序员们作为尽快解决客户端页面载入问题的捷径。 但有时候等待页面载入还是不够快。 只有少数大型的图片文件会被快速的载入,而大部分大型的图片文件会使window.onload()载入的很慢。所以当我为最近的网络营销创建一个web应用程序的时候我不得希望更快一点。有一些围绕window.onload()的新研究(比如brother cake)的代码是一种快速的方式。如果你需要,可以试试。 但是如果你要做一些DOM(文档对象模型)javascript的编程,那么你为什么不试试jQueryjQuery有一个用来作为DOM快速载入javascript的得心应手的小函数,那就是ready… 他在页面加载完成之后执行。原文地址:
http://wiki.jquery.org.cn/doku.php?id=jquery%E4%B8%AD%E6%96%87%E6%8C%87%E5%AF%BC:15%E5%A4%A9%E5%AD%A6%E4%BC%9Ajquery
{
document.addEventListener("DOMContentLoaded",load,null);
}else
{
document.onreadystatechange=function() //IE
{
load(1);
}
}function load()
{ if(arguments[0]!=1||document.readyState=="complete")
{
alert("Page Loaded");
}
}
有没有合适的方法来判断图片加载完毕?(最好能够兼容浏览器),谢谢!
哎,不知道为什么发不了了,注册个小号发上来, 请大家帮我分析下,谢谢!<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>small picture test page</title>
<script language = "JavaScript">
mydate=new Date();
var minutes=mydate.getMinutes().toString();
var seconds=mydate.getSeconds().toString();
var hours=mydate.getHours().toString();
var miliseconds=mydate.getMilliseconds().toString();
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label4" runat="server" ForeColor="#8080FF" Text="Size:"></asp:Label>
<asp:Label ID="Label2" runat="server" Text="Label" Visible="False" Width="113px"></asp:Label>
<asp:Label ID="Label5" runat="server" ForeColor="#8080FF" Text="Interval:"></asp:Label>
<asp:Label ID="Label3" runat="server" Text="Label" Visible="False" Width="62px"></asp:Label>
<asp:Label ID="Label6" runat="server" ForeColor="#8080FF" Text="Rate:"></asp:Label>
<asp:Label ID="Label7" runat="server" Text="Label" Width="239px" Visible="False"></asp:Label><br />
<asp:Label ID="Label1" runat="server" Text="Downloading..." Width="183px" ForeColor="#00C0C0"></asp:Label> <br />
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Default.aspx">Return Main Page</asp:HyperLink>
<br />
<br />
<asp:Image ID="Image1" runat="server" ImageUrl="~/spic.jpg" /></div>
</form>
<script language="JavaScript">
if(document.addEventListener)//FF
{
document.addEventListener("DOMContentLoaded",load,null);
}else
{
document.onreadystatechange=function() //IE
{
load(1);
}
}function load()
{ if(arguments[0]!=1||document.readyState=="complete")
{
alert("Page Loaded");
}
}
/// window.location="scalc.html?"+time+"&"+time2+"&"+speed;
}
</script>
</body>
</html>
/// window.location="scalc.html?"+time+"&"+time2+"&"+speed;
}
你这里多了个"}",去掉就正确了
如下:Page 执行中将按照如下顺序激活事件:Page.PreInit
Page.Init
Page.InitComplite
Page.PreLoad
Page.Load
Page.LoadComplete
Page.PreRender
Page.PreRenderComplete
那么会自动调用<script type="text/javascript">function pageLoad(){....}</script>内的pageLoad()方法。这才是客户端的动作。