簡體   English   中英

Safari和Chrome中的Ajax加載問題

[英]Problems with ajax load in safari and chrome

SafariChrome中運行Ajax請求時出現問題,在Firefox中卻沒有問題

var doStuff = function(){
 callLoadingScreen();
 jsRoutes.controllers.SomeController.someServerSideMethod().ajax({
 //ajax stuff
 });
 closeLoadingScreen();
}

在Safari和chrome中,調用doStuff()時會跳過callLoadingScreen()方法,但會發送ajax請求,並且僅在ajax請求完成后才加載callLoadingScreen()方法。

在Firefox中,一切都按預期運行,但在chrome和safari中則無效。 這是一些游戲問題,還是jquery問題。 我已經嘗試了很多修復程序,但似乎都無法正常工作。是否有我缺少的東西,我之前進行過這種加載,但不記得有這個問題。

歡迎任何幫助或反饋。 謝謝。

假設您的代碼未使用async: false運行ajax調用,那么您永遠都不要這樣做 ,它不應在任何瀏覽器上都可以正常工作

在調用closeLoadingScreen之前,您需要等待Ajax調用完成:

例如

var doStuff = function(){
 callLoadingScreen();
 jsRoutes.controllers.SomeController.someServerSideMethod().ajax({
 //ajax stuff
       complete: function(){
           closeLoadingScreen();
       }
 });
}

在您的示例中,它是這樣做的:

 callLoadingScreen();
 closeLoadingScreen();
 // Get response from Async Ajax call here sometime much later!

如果您想使用promise,請嘗試以下方式:

var doStuff = function(){
   callLoadingScreen();
   jsRoutes.controllers.SomeController.someServerSideMethod().ajax({
      //ajax stuff
   }).then(closeLoadingScreen);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM