OVH Cloud OVH Cloud

chargement et js

5 réponses
Avatar
neo-matrix
slt tt le monde,

j'aimerais savoir s'il est possible avec javascript, lors d'un
changement de page, s'il atteint un délai trop long ou d'une defaillance
de l'execution de la page de rediriger vers une page d 'erreur ?

si oui, comment peut on faire ?

Merci d'avance.

5 réponses

Avatar
unbewusst.sein
neo-matrix wrote:


si oui, comment peut on faire ?


comme ça, sans avoir testé, je dirais :

dès le départ du chargement d'un document lancer une fonction avec time
out et vérifier à la fin du time out si l'événement onload s'est
produit, ou non.

quelque chose du genre :

var doc_loadedúlse;
window.onload=setLoaded;
function setLoaded(){
doc_loaded=true;
}
function init(){
setTimeout("isDocLoaded",1000); //1000 == 1 seconde
}
function isDocLoaded(){
if(!doc_loaded) document.location.href=<la page d'erreur>
}
init();


je fais une petite page de test (je dois trouver une "grosse image" à
charger) et je repost.
--
Une Bévue

Avatar
unbewusst.sein
Une Bévue wrote:

je fais une petite page de test (je dois trouver une "grosse image" à
charger) et je repost.


Bon, c'est fait et ça roule, 3 pages dans le répertoire :

<http://www.yvon-thoraval.com/Events/>

- la première window_onload_with_timeout.html, charge une image de
grande dimension (1.8 MO) et donc est redirigée vers la seconde :
- error.html ;
- la troisième window_onload_without_timeout.html est la "même" que la
première excepté qu'elle charge une image de petite dimension (244 KO)
et donc n'est pas redirigée.

J'ai réglé le timeout à 1000 milliseconde (variable time_out dans le
code JavaScript).

J'ai laissé des alert() un peu partout pour que vous puissiez suivre les
événements. (commentés dans mon code)

Enfin, j'ai laissé un alert() au cas où la page est chargée avant le
timeout :

if(doc_loaded) alert(...);// ligne 38

cette alert() doit-être commentée en usage normal (ie // devant if)
--
Une Bévue

Avatar
ASM
Bon, c'est fait et ça roule, 3 pages dans le répertoire :

<http://www.yvon-thoraval.com/Events/>


en effet

variante 1

function surveilleTempsChargement(delai, redirection) {
doc_loaded = setTimeout(function() {
location = redirection;
}, delai);
window.onload = function() { clearTimeout(doc_loaded); }
}
surveilleTempsChargement(3000, 'error.htm');


variante 2 :

doc_loaded = setTimeout(function() {
location = 'error.htm';
}, 3000);
onload = function() { clearTimeout(doc_loaded); alert('doc chargé'); }


--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé

Avatar
neo-matrix
Bon, c'est fait et ça roule, 3 pages dans le répertoire :

<http://www.yvon-thoraval.com/Events/>


en effet

variante 1

function surveilleTempsChargement(delai, redirection) {
doc_loaded = setTimeout(function() {
location = redirection;
}, delai);
window.onload = function() { clearTimeout(doc_loaded); }
}
surveilleTempsChargement(3000, 'error.htm');


variante 2 :

doc_loaded = setTimeout(function() {
location = 'error.htm';
}, 3000);
onload = function() { clearTimeout(doc_loaded); alert('doc chargé'); }


merci bcp les gens ca va bien m'aider !



Avatar
neo-matrix
Bon, c'est fait et ça roule, 3 pages dans le répertoire :

<http://www.yvon-thoraval.com/Events/>


en effet

variante 1

function surveilleTempsChargement(delai, redirection) {
doc_loaded = setTimeout(function() {
location = redirection;
}, delai);
window.onload = function() { clearTimeout(doc_loaded); }
}
surveilleTempsChargement(3000, 'error.htm');


variante 2 :

doc_loaded = setTimeout(function() {
location = 'error.htm';
}, 3000);
onload = function() { clearTimeout(doc_loaded); alert('doc chargé'); }


merci bcp les gens ca va bien m'aider !