2013-08-31 21 views
1

我是新來的JavaScript的XMLHttpRequest()JSON並行多線程

請幫我解決這個問題,

我有分貝之旅的功能。每10毫秒發射一次。問題是數據在一段時間內有所不同,它給出了3條記錄有時5條記錄。我沒有通過sp參數的問題。我認爲這是由於函數調用不是線程。所以函數調用的過程是前一個調用完成

我所看到的文章多線程 https://gist.github.com/johdax/1269740

前重疊,但沒有想法,我的功能與線程整合。

這是我的功能

<script> 
    setInterval(function(){UserList()},10); 

    function UserList() 
     { 
      if (window.XMLHttpRequest) 
      {// code for IE7+, Firefox, Chrome, Opera, Safari 
       xmlhttp6=new XMLHttpRequest(); 
      } 
      else 
      {// code for IE6, IE5 
       xmlhttp6=new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      xmlhttp6.onreadystatechange=function() 
      { 
       if (xmlhttp6.readyState==4 && xmlhttp6.status==200) 
       { 
        $("#UserStatusList").html(xmlhttp6.responseText); 
       } 
      } 
      var a = $('#cmbProjectList').val(); 
      if (a==null){ a=""} 

      xmlhttp6.open("GET","UserList.asp?ProjectId=" + a,true); 
      xmlhttp6.send(); 
      return false; 
     } 

請幫我解決這個問題。 我該如何在線上應用線程?

+0

JavaScript不是'Multithreaded',但可以是'Asynchronus' ... –

+0

10毫秒的間隔是不可能的...... – user1600124

+0

如果你不想讓請求重疊嘗試增加延遲或使它'synchronus'通過將'open'方法的最後一個參數設置爲'false'而不是'true' –

回答

0

瀏覽器並沒有真正以任何暴露的方式使用線程,AFAIK。如果您想要真正實現瀏覽器正常流程,您可以查看Web Worker API,它爲JS活動創建單獨的沙箱。