2016-08-26 3 views
0

Ich habe Informationen, wie unten von einem Mikroprozessor-HardwareSyncronous XMLHTTPRequest veralteter Crash-Browser?

var save_it = ''; 
$.ajax({ 
    type: "GET", 
    url: 'http://www.micro-processor-server/?ROBOT=arm_controle', 
    async: false, 
    success:function(m) { 
     save_it = m; 
    } 
    }).responseText; 
console.log(save_it); 

lesen Während Dabei funktioniert es, aber meine Browser-Konsole gibt sehr beängstigend Warnung, wie unten, auch mehrmals ich Web-Browser Google Chrome erhalten bemerkt haben hängen:

enter image description here

Kann jemand bitte eine alternative Art und Weise zeigen, wie meine Ajax Abfrage kompatibel zu machen? (Ich kann Codes in Micro-Prozessor seinen Drittparteiroboter nicht ändern)

+2

async: true und lernen, wie asynchronen Code zu verwenden, anstatt zu fürchten es –

+1

Es hängt wahrscheinlich aufgrund von Netzwerkverzögerung, weil Ihre Anfrage synchron ist. Es wartet auf die Antwort und wenn es lange dauert, pausiert der Browser. Warum kann es nicht asynchron sein? – Jared

+2

Verschieben Sie einfach Ihre Protokollierung in die Erfolgsfunktion und entfernen Sie das Async-Flag ... Sie können auch 'save_it' in eine lokale Variable innerhalb des Erfolgs-Callbacks einfügen. –

Antwort

2

Setzen Sie den Code, der die Antwort in der success Funktion benötigt. Sie könnten auch $.get verwenden, wenn dies alles ist, was Sie tun müssen.

1

rufen Sie eine andere Funktion mit Rückgabedaten auf.

$.get('http://www.micro-processor-server/? ROBOT=arm_controle',function(data){ 
    myfun(data); 
}); 

myfun(data){ 
    console.log(data);//here you might be able get rid of asynchronous behaviour. 
} 
+2

Sie können 'function (data) {myfun (data);}' durch 'myfun' ersetzen, z. '$ .get ('http: //www.micro-processor-server/? ROBOT = arm_controle', myfun);'. –