2017-02-14 115 views
-3

大家好我想編譯併發送一些形式到一個PHP文件,但我注意到,它是非常緩慢的,即使在PHP我var_dump只有POST值,它需要相同的時間,如果我用我的正確功能。 也許編碼是錯誤的,這就是我想要做的事:爲什麼AJAX這麼長?

$("#button").click(function(){ 
     $("#button").css("border","2px solid blue"); 
     var total_forms = $("input[name=total_forms]").val(); 
     $.ajax({ 
     type: "POST", 
     url: "<? echo "myurl.php";?>", 
     data: {delete : 1}, //before sending my forms i need to run another function that delete some items in mySQL DB 
     success: function(data) { 
     for(var i = 0; i < total_forms; i++){ 
      var string_ok = "#form_number_"; 
      string_ok = string_ok.concat(i); 
      var dataString = $(string_ok).serialize(); 
      $.ajax({ 
     type: "POST", 
     url: "echo "myUrl.php;"", 
     data: dataString, 
     success: function(data) { 
      console.log(data); //it's a bit faster, only a bit 
      $("#mydiv").append(data); //it's a bit slower 
     } 
      }); 
     } 
     } 
      }); 
    }); 

我忘了說,我只有10GB可用運行它的甲基苯丙胺與8GB內存和SSD一臺MacBook,也許我的電腦有問題,IDK ..

大約需要4分鐘編譯,發送到PHP和郵票DATAS用於500forms

這是我送dataString的例子:

prd_number=1259&prd_max_number=1763&old_prd_id=0&prd_action=true&title=INFORMAT%20G1X85A%23A80&title_check=true&old_title_text=&new_image_url=&old_image_url=&is_mech=&image_check=true&new_cat=Informatica%2CINFORMAT&category=true&new_price_text=222.04&price=true&new_sku_text=888182658918&oth=true&ncw=negat&stwe=testing&mark_text=INFORMAT_G1X85A%23A80&check_two=true&other_sto=table&var2=true&elemt=&weight=true&qt=3&qslow=true&clients=Norman%2Cli&taking=true&setting=normal&vars_set=true 

我注意到,如果我console.log(dataString),控制檯首先戳所有dataString日誌,然後開始打印每個PHP響應。

+0

約35inputs類型隱藏和4/5複選框@JaromandaX –

+0

我也注意到,當查詢需要太多的時間來運行(第一Ajax調用) 後100點形成第二Ajax調用崩潰,並繼續CONSOLE.LOG( )nothing @JaromandaX –

+0

讓我們[在聊天中繼續討論](http://chat.stackoverflow.com/rooms/135640/discussion-between-jack-usti-and-jaromanda-x)。 –

回答

0
  • 您是否在本地發送數據?就像你的php服務器在本地運行或者它託管在某處?
  • 表單上有多少數據?
  • 此外您的代碼正在for循環中發送一個ajax請求。所以你有一個嵌套的ajax調用,循環的每次迭代都會有一個調用。那當然會變慢,有沒有一種方法可以將此重構爲一個Ajax請求?基本上你做了一個Ajax請求,等待這個響應返回,循環,然後每次迭代時發送另一個響應。似乎有點複雜。
+0

是的,我使用本地主機。 我不知道如何檢查表格上有多少數據,我不認爲太多因爲只有字符串不是太大, 我這樣做,因爲我想每個數據的動態響應更新,所以我有「100項目1更新」,「項目2 ...」等等。 –

+0

我更新了我的回答,提供了更多詳細信息@Ryan –