C# Ajax调用开始加载,就像一个怪物
我有一个测试Ajax的网站。。。它的工作原理是:C# Ajax调用开始加载,就像一个怪物,c#,javascript,asp.net,ajax,C#,Javascript,Asp.net,Ajax,我有一个测试Ajax的网站。。。它的工作原理是: <%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="AJAX.aspx.cs" Inherits="HB___test.AJAX" %> <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="s
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true"
CodeBehind="AJAX.aspx.cs" Inherits="HB___test.AJAX" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
function Ajax() {
var xmlHttp;
try {
xmlHttp = new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
} catch (e) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
alert("No AJAX!?");
return false;
}
}
}
xmlHttp.onreadystatechange = function () {
document.getElementById('chat').innerHTML = xmlHttp.responseText;
setTimeout('Ajax()', 10000);
}
xmlHttp.open("GET", "ajax-Content.aspx", true);
xmlHttp.send(null);
}
window.onload = function () {
setTimeout('Ajax()', 10000);
}
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
Kummefryser...!
<div id="chat" class="fisk" style="width: 500px; height: 500px">
</div>
</asp:Content>
函数Ajax(){
var-xmlHttp;
试一试{
xmlHttp=newXMLHttpRequest();//Firefox、Opera 8.0+、Safari
}捕获(e){
试一试{
xmlHttp=newActiveXObject(“Msxml2.xmlHttp”);//Internet Explorer
}捕获(e){
试一试{
xmlHttp=新的ActiveXObject(“Microsoft.xmlHttp”);
}捕获(e){
警报(“没有AJAX!?”;
返回false;
}
}
}
xmlHttp.onreadystatechange=函数(){
document.getElementById('chat').innerHTML=xmlHttp.responseText;
setTimeout('Ajax()',10000);
}
open(“GET”,“ajax Content.aspx”,true);
xmlHttp.send(空);
}
window.onload=函数(){
setTimeout('Ajax()',10000);
}
Kummefryser。。。!
这里是网站,它是老顶:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ajax-Content.aspx.cs" Inherits="HB___test.ajax_Content" %>
<body>
<form id="form1" runat="server">
<div>
<asp:ListBox ID="lbChat" runat="server" Rows="10" Width="400px"></asp:ListBox>
</div>
</form>
</body>
以及上述站点的代码隐藏:
public partial class ajax_Content : System.Web.UI.Page
{
grjenie31Entities gr;
protected void Page_Load(object sender, EventArgs e)
{
gr = new grjenie31Entities();
var query = from es in gr.chats
where es.id > ((from esh in gr.chats select esh.id).Max() - 15)
orderby es.timestamps descending
select es;
List<chat> list = new List<chat>();
foreach (chat chat in query)
{
list.Add(chat);
}
for (int i = 0; i < list.Count; i++)
{
lbChat.Items.Add("[" + list[i].timestamps + "] " + list[i].personID.ToString() + ": " + list[i].besked);
}
this.lbChat.SelectedIndex = this.lbChat.Items.Count - 1;
}
}
public分部类ajax\u内容:System.Web.UI.Page
{
Grjeniegr;
受保护的无效页面加载(对象发送方、事件参数e)
{
gr=新的GRJENIE31实体();
var query=来自gr.chats中的es
其中es.id>((从gr.chats中的esh选择esh.id).Max()-15)
orderby es.timestamps递减
选择es;
列表=新列表();
foreach(查询中的聊天)
{
列表。添加(聊天);
}
for(int i=0;i
但是当我加载ajax-Content.aspx网站时,它开始以惊人的速度重新加载。。。因此,在30秒内,我无法读取它在ajax.Content.aspx站点中加载的文本。
任何想法???xmlHttp.onreadystatechange不仅在成功时触发,而且应该只在readystate 4上启动新的超时
此外,您应该为超时定义一个变量,以便在运行新的超时之前能够清除现有超时。xmlHttp.onreadystatechange不仅在成功时触发,而且应该只在readystate 4上启动新的超时 此外,您应该为超时定义一个变量,以便在运行新的超时之前能够清除现有超时