67 votes

Où puis-je trouver les paramètres de délai d'attente par défaut pour tous les navigateurs ?

Je cherche une sorte de documentation qui spécifie le temps que chaque navigateur (IE6/IE7/FF2/FF3, etc.) attendra pour une requête avant d'abandonner et d'expirer.

Je n'ai pas eu de chance en essayant de l'obtenir.

Des conseils ?

22voto

Grant Wagner Points 14085

J'ai réussi à trouver réseau.http.connect.timeout pour des versions beaucoup plus anciennes de Mozilla :

T ajoutées pour permettre une modification de bas niveau du le code de mise en réseau HTTP. Après qu'une partie du même code a été réécrit de manière significative en 2001, la préférence a cessé d'avoir un quelconque effet (comme indiqué dans all.js dès septembre 2001). septembre 2001).

C par la connexion au niveau du système d'établissement de la connexion au niveau du système. L'ajout d'un moyen de configurer cette valeur est considéré comme faible priorité.

Il semblerait que network.http.connect.timeout n'a rien fait depuis un certain temps.

J'ai également vu des références à network.http.request.timeout alors j'ai fait un Recherche sur Google . Les résultats comprennent de nombreux liens vers des personnes qui recommandent à d'autres de l'inclure dans leur programme. about:config dans ce qui semble être une croyance erronée qu'il fait réellement quelque chose, puisque la même recherche aboutit à ceci about:config entrées article :

Pref enlevé (inutilisé) . Auparavant : Réseau spécifique à HTTP réseau spécifique. La valeur par défaut est 120 .

En même page comprend des informations supplémentaires sur network.http.connect.timeout :

Pref enlevé (inutilisé) . Auparavant : détermine le temps d'attente pour attendre une réponse avant d'enregistrer un délai d'attente. La valeur par défaut est 30 .

Avis de non-responsabilité : les informations contenues dans la base de connaissances MozillaZine peuvent être incorrectes, incomplètes ou périmées.

5voto

JL. Points 16055

Tout d'abord, je ne pense pas qu'il n'y ait qu'une seule solution à votre problème.....

Comme vous le savez, chaque navigateur est très différent.

Mais voyons si nous pouvons nous rapprocher de la réponse que vous cherchez. ....

Je pense que l'IE pourrait être facile...

Consultez ce lien http://support.microsoft.com/kb/181050

Pour Firefox, essayez ceci :

Ouvrez Firefox, et dans la barre d'adresse, tapez "about:config" (sans les guillemets). À partir de là, faites défiler l'écran jusqu'à Network.http.keep-alive et assurez-vous qu'il est défini sur "true". Si ce n'est pas le cas, double-cliquez dessus, et il passera de false à true. Maintenant, allez un peu plus bas sur network.http.keep-alive.timeout -- et changez ce nombre en double cliquant dessus. Si vous mettez, disons, 500 ici, vous devriez être bon. faites-nous savoir si cela vous aide du tout.

5voto

Hanu Points 1

Après la dernière mise à jour de Firefox, nous avons rencontré le même problème de dépassement du temps de session et le paramètre suivant a permis de le résoudre.

Nous pouvons le contrôler avec network.http.response.timeout paramètre.

  1. Ouvrez Firefox, tapez "about:config" dans la barre d'adresse et appuyez sur Entrée.
  2. Cliquez sur le bouton "Je serai prudent, je le promets !".
  3. Tapez 'timeout' dans le champ de recherche et network.http.response.timeout s'affichera.
  4. Double-cliquez sur le network.http.response.timeout et entrez la valeur du temps (en secondes) pendant lequel vous ne voulez pas que votre session se termine, dans la case.

2voto

akiespenc Points 165

Pour Google Chrome (testé sur la version 62)

J'essayais de maintenir une connexion socket en vie depuis l'API de récupération de google chrome vers un serveur express distant et j'ai découvert que les en-têtes de requête doivent correspondre à ceux de Node.JS. <net.socket> les paramètres de connexion.

J'ai défini l'objet headers sur mon script côté client avec les options suivantes :

/* ----- */
head = new headers();
head.append("Connnection", "keep-alive")
head.append("Keep-Alive", `timeout=${1*60*5}`) //in seconds, not milliseconds
/* apply more definitions to the header */
fetch(url, {
    method: 'OPTIONS',
    credentials: "include",
    body: JSON.stringify(data),
    cors: 'cors',
    headers: head, //could be object literal too
    cache: 'default'
 })
 .then(response=>{
    ....
  }).catch(err=>{...});

Et sur mon serveur express, j'ai configuré mon routeur comme suit :

 router.head('absolute or regex', (request, response, next)=>{
  req.setTimeout(1000*60*5, ()=>{
     console.info("socket timed out");
   });
  console.info("Proceeding down the middleware chain link...\n\n");
  next();
 });

 /*Keep the socket alive by enabling it on the server, with an optional 
  delay on the last packet sent 
 */
server.on('connection', (socket)=>socket.setKeepAlive(true, 10))

AVERTISSEMENT

Faites preuve de bon sens et assurez-vous que les utilisateurs auxquels vous maintenez la connexion par socket sont validés et sérialisés. Cela fonctionne aussi pour Firefox, mais c'est vraiment vulnérable si vous gardez la connexion TCP ouverte pendant plus de 5 minutes.

Je ne sais pas comment fonctionnent certains navigateurs moins connus, mais je joindrai à cette réponse les détails concernant le navigateur de Microsoft.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X