2016-06-02 3 views
-1

Ich erstelle eine HTML-Seite und es enthält n Anzahl der Skriptdateien.Verhindern Sie das Einfrieren der Seite

In meiner HTML-Seite auf dem window.onload I'm` einer meiner Funktionen aufrufen als

<script> 
window.onload = function() { 
     MyMethod('Value'); 
    }; 
</script> 

Wenn es diesen Teil des Codes trifft meine Seite wird fror immer, bis die Ausführung der Funktion beendet ist.

Der Grund, warum ich n Anzahl von Skripten gesagt habe, liegt daran, dass dieses Problem nie mit den anderen Skriptdateien existiert, außer für diesen bestimmten window.onload-Aufruf.

Wie kann ich aus stecken zu bleiben, wenn die Funktion

genannt

MyMethod der Wert nimmt einen ajax Anruf zu einem meiner Service macht, basierend auf der result entweder displays oder hides einige meiner Elemente

JavaScript

function MyMethod(val) { 
var par = val; 
jQuery.ajax({ 
      type: "POST", 
      url: "/services/MyService/MethodName", 
      data: par, 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      async: false, 
      success: function (response) { 
       arr = response.d.toString().split(','); 
       if (arr[0] == "0") { 
        //show and hide some DOM elements 
       } 
       else{ 
        //show and hide other DOM elements 
       } 
      }, 
      error: function (response) { 

      } 
     }); 
+4

was macht 'MyMethod'? Ohne es zu sehen, können wir nur raten, was die Sperre verursacht. – ste2425

+0

Es wird stecken bleiben, einen Timer abfeuern und Ihre Methode in diesen Timer setzen. – Gar

+0

@Gar Ein Timer würde nur den Code –

Antwort

0

Make asynctrue.

async: true, 
+0

Ich kann nicht async: True, weil ich eine andere Logik implementieren muss –

Verwandte Themen