URL: https://linuxfr.org/forums/programmationweb/posts/performances-ajax Title: Performances ajax ? Authors: TNorth Date: 2007年02月12日T11:02:52+01:00 Tags: Score: 0 Bonjour, J'utilise AJAX pour récupérer une commande système simple, qui prends environ 1 seconde à s'exécuter. (et qui fait un print dans une page php, elle même renvoyée par xmlhttprequest en responseText) Sur la page web, il faut attendre plus de 10 secondes pour voir le résultat de la page. (j'ai testé le script hors ajax, et il prends 1 seconde d'exécution environ.) Donc, c'est le navigateur qui attends la réponse.. un peu longtemps ! P.S je sais que innerHTML c'est pas un standard, mais je n'ai pas pris le temps de trouver mieux... Code: function xmlhttpPost(strURL, form_name,div_id) { £spaces£ £/spaces£var xmlHttpReq = false; £spaces£ £/spaces£var self = this; £spaces£ £/spaces£// Mozilla/Safari £spaces£ £/spaces£if (window.XMLHttpRequest) { £spaces£ £/spaces£self.xmlHttpReq = new XMLHttpRequest(); £spaces£ £/spaces£} £spaces£ £/spaces£// IE £spaces£ £/spaces£else if (window.ActiveXObject) { £spaces£ £/spaces£self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP"); £spaces£ £/spaces£} £spaces£ £/spaces£self.xmlHttpReq.open('POST', strURL, true); £spaces£ £/spaces£self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); £spaces£ £/spaces£self.xmlHttpReq.onreadystatechange = function() { £spaces£ £/spaces£if (self.xmlHttpReq.readyState == 4) { £spaces£ £/spaces£updatepage(self.xmlHttpReq.responseText, div_id); £spaces£ £/spaces£} £spaces£ £/spaces£} £spaces£ £/spaces£self.xmlHttpReq.send(getquerystring(document.forms[form_name])); } £spaces£ £/spaces£ function getquerystring(Form) { £spaces£ £/spaces£/*var form = document.forms[form_name]; £spaces£ £/spaces£var word = form.word.value; £spaces£ £/spaces£qstr = 'w=' + escape(word); // NOTE: no '?' before querystring £spaces£ £/spaces£return qstr; £spaces£ £/spaces£*/ £spaces£ £/spaces£var data="" £spaces£ £/spaces£for (key in Form.elements) { £spaces£ £/spaces£data+=escape(Form.elements[key].name)+"="+escape(Form.elements[key].value)+"&"; £spaces£ £/spaces£} £spaces£ £/spaces£return data.substr(0, data.length-1); } £spaces£ £/spaces£ function updatepage(str, div_id){ £spaces£ £/spaces£document.getElementById(div_id).style.display='block'; £spaces£ £/spaces£if (str.length>0) document.getElementById(div_id).innerHTML = str; } Y a-t-il un moyen de remédier à cela ? Sous IE7, cela ne fonctionne tout simplement pas.

AltStyle によって変換されたページ (->オリジナル) /