2012-07-25 137 views
1

我已經開始在IIS 7上開發.NET 4中的網絡聊天。聊天的主頁包含2個IFRAME。第一幀用於預留消息並逐步加載(它將消息加載並將消息傳遞給與聊天連接的所有用戶)。第二個iframe用來發送消息。當第一幀加載第二幀不能被加載時,我遇到了一個問題,但如果第一幀停止加載,則以毫秒爲單位執行秒。同時加載2個iframe

  1. 我已經嘗試過:
  2. 使用AJAX來發送郵件。
  3. 對第一幀和第二幀的腳本使用不同的名稱。它有時會幫助但不總是。
  4. 檢查用戶刷新聊天主頁後腳本是否仍然運行或關閉它。
  5. 在IIS中設置連接超時。
  6. 使用流式響應/文本響應。
  7. 連接保持活動/沒有保持活動指令。
  8. 交換主聊天頁面的Iframe標籤。
  9. 以不同的方式添加聊天主頁面的CSS JS文件,即@import CSS。
  10. 刪除使用。

我發現了一個sollution,但我不認爲這是因爲使用域訪問的JavaScript限制諸多領域很好的解決方案。 iFrames not executing in parallel

這裏是Test.aspx文件和Test.aspx.cs頁面代碼:

<%@ Page Title="Home Page" Language="C#" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="Test._Default" %> 

using System; 
using System.Web; 
using System.Threading; 

namespace Test 
{ 
    public partial class _Default : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
     string p = (Request.QueryString["p"] != null)?Request.QueryString["p"]:""; 
     if(Request.QueryString["data"] == null) 
     { 
      Response.Write(@"<html><head></head><body>12<iframe src=""Test.aspx?data="" height=""900px""></iframe><iframe src=""http://localhost/Test"[email protected]".aspx?data="" height=""900px""></iframe></body></html>"); 
     } 
     else 
     { 
      System.IO.File.AppendAllText(Server.MapPath(".")+ @"\test.log", DateTime.Now.ToString()+ "\t" + "Data script started\r\n"); 
      Response.Write(new String(' ', 1024)); 
      int i=0; 
      while (Response.IsClientConnected) 
      { 
       Response.Write((++i).ToString() + " "); 
       Response.Flush(); 
       Thread.Sleep(1000); 
       System.IO.File.AppendAllText(Server.MapPath(".")+ @"\test.log", DateTime.Now.ToString()+ "\t" + "Data script Runned\r\n"); 

      } 
      System.IO.File.AppendAllText(Server.MapPath(".")+ "test.log", DateTime.Now.ToString()+ "\t" + "Data script stoped\r\n"); 
     } 
    } 
    } 
} 

回答