我正在处理 asp.net 项目中的服务器发送事件(Html5)。该代码非常简单,因为它从服务器接收数据并将其显示在 DIV 中。只有当我在 FireFox 上运行代码时才会出现问题,其中 Eventsource 一直没有被调用,Firebug 显示 2 个请求或 12 个请求,或者有时只有 1 个请求。当我在 chrome 上测试代码时,代码工作正常,我收到了无限的请求。我的代码是:
<script type="text/javascript">
$(function()
{
if (window.EventSource == undefined)
{
$('#targetDiv').html('Your Browser Cant support Server Side Event');
return;
}
var source = new EventSource('GetData.aspx?userid=jalal');
source.onopen = function(event){$('#targetDiv').append("Connection opened... <br/>");};
source.onerror = function(event)
{
if (event.eventPhase == EventSource.CLOSED)
$('#targetDiv').append("Connection Closed!<br/>");
source.addEventListener("new-message", function (event) {});
};
source.onmessage = function(event){$('#targetDiv').append(event.data + '<br/>')};
});
</script>
<div id="targetDiv">
</div>
以及 GetData.aspx.cs 页面背后的代码
protected void Page_Load(object sender, EventArgs e)
{
DateTime StartDate = DateTime.Now;
Response.ContentType = "text/event-stream";
Response.Expires = -1;
Response.CacheControl = "no-cache";
Response.Write("data: " + Request.QueryString["userid"] + " " + DateTime.Now.ToString() + "\n\n ");
Response.Flush();
}
谁能告诉我上面的代码有什么问题,或者为什么这只发生在 Firefox 中。