Bonjour,
J'ai un problème quand ma requete est trop longue.
Je voudrai que si la requette n'a pas été effectuée en 5 secondes, on stop la requette et on affiche un message.

Erreur firefox :
[Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: http://url :: alertContents :: line 61" data: no]
[Break on this error] if (xhr.status == 200) {

fichier ajax
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<script type="text/javascript">
 
    function makeRequest(url) {
 
        var xhr = false;
 
        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            xhr = new XMLHttpRequest();
            if (xhr.overrideMimeType) {
                xhr.overrideMimeType('text/xml');
                // Voir la note ci-dessous à propos de cette ligne
            }
        }
        else if (window.ActiveXObject) { // IE
            try {
                xhr = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch (e) {
                try {
                    xhr = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (e) {}
            }
        }
 
        if (!xhr) {
            alert('Abandon :( Impossible de créer une instance XMLHTTP');
            return false;
        }
 
        xhr.onreadystatechange = function() { alertContents(xhr); };
        xhr.open('GET', url, true);
		xhr.send(null);
		//setTimeout ( "abortRequest('xhr')", 5000);.
		setTimeout(abortRequest, 5000);
 
// on annule la requete après 5 secondes
function abortRequest() {
		var content = document.getElementById('ShareContent');
 
		//si la requete n'est pas terminée
		if (xhr.readyState != 4) {
			//on affiche le message d'erreur
			content.innerHTML = 'Le serveur ne répond pas, il est trop lent';  
			//on crash la requete
			var i = 0;
			xhr.abort();
		}
} 	
 
 
    }
 
    function alertContents(xhr) {
		var content = document.getElementById('ShareContent');
		if(xhr.readyState == 1){
			content.innerHTML = '<img src="loading.gif">';
			//alert('pause');
			//alert(xhr.readyState);
		}
 
		if (xhr.readyState == 4) {
            if (xhr.status == 200) {
               content.innerHTML = xhr.responseText;
            } 
			else if (xhr.status == 404) {
				content.innerHTML = 'Le fichier n\'existe pas.';
			}
			else if (xhr.status == 500) {
				content.innerHTML = 'Erreur interne du serveur.';
			}
			else {
				content.innerHTML = 'Un problème est survenu avec la requête.';
			}
        }
 
    }
 
 
</script>
<body onLoad="makeRequest('vraicours2.js');">
<p class="access"><em>Texte</em></p>
<div id="ShareCadre">
<div id="ShareContent"></div>
</div>
<input type="submit" value="fichier lent test" onClick="makeRequest('vraicours2lent.asp');">
<input type="submit" value="fichier test normal" onClick="makeRequest('vraicours2.js');">
</body>
fichier js
fichier asp qui est lent
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<% 
maintenant = now()
while dateadd("s", 10, maintenant) > now()
wend
response.write "10 secondes plus tard"
%>