web-dev-qa-db-fra.com

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 combien de temps chaque navigateur (IE6/IE7/FF2/FF3, etc.) attendra une demande avant d'abandonner et de perdre du temps.

Je n'ai pas eu de chance d'essayer de l'obtenir.

Des pointeurs?

62
Daniel Magliola

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

Cette préférence était l’une des nombreuses ajouté pour permettre un réglage de bas niveau de le code de réseau HTTP. Après un partie du même code était significativement réécrit en 2001, le la préférence a cessé d'avoir aucun effet (comme indiqué dans all.js dès le mois de septembre 2001).

Actuellement, le délai d'attente est déterminé par la connexion au niveau du système délai d'établissement. Ajout d'un moyen à configurer cette valeur est considérée priorité basse.

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

J'ai aussi vu des références à network.http.request.timeout, alors j'ai fait une recherche Google . Les résultats incluent de nombreux liens vers des personnes recommandant à d’autres de l’inclure dans about:config, ce qui semble être une croyance erronée qu’il fait réellement quelque chose, puisque la même recherche donne ceci about: config entries article:

Préfecture supprimée (non utilisée) . Auparavant: réseau spécifique à HTTP temps libre. La valeur par défaut est 120.

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

Préfecture supprimée (non utilisée) . Auparavant: détermine combien de temps il faut pour attendez une réponse avant de vous inscrire un délai d'attente. La valeur par défaut est 30.

Clause de non-responsabilité: les informations de la base de connaissances MozillaZine peuvent être incorrectes, incomplètes ou obsolètes.

19
Grant Wagner

tout d'abord, je ne pense pas qu'il existe une seule solution à votre problème ...

Comme vous le savez, chaque navigateur est extrêmement différent. 

Mais voyons si nous pouvons nous rapprocher de la réponse dont vous avez besoin….

Je pense que IE pourrait être facile ...

Vérifiez ce lien http://support.Microsoft.com/kb/181050

Pour Firefox, essayez ceci:

Ouvrez Firefox et dans la barre d'adresse, tapez "about: config" (sans guillemets). À partir de là, faites défiler 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 faux à vrai. Maintenant, allez en dessous de network.http.keep-alive.timeout - et changez ce nombre en double-cliquant dessus. si vous mettez, disons, 500 là-bas, vous devriez être bon. laissez-nous savoir si cela aide du tout

5
JL.

Après la dernière mise à jour de Firefox, nous avions le même problème de délai d'expiration de session et les paramètres suivants ont permis de le résoudre.

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

  1. Ouvrez Firefox et tapez ‘about: config’ dans la barre d’adresse et appuyez sur Entrée.
  2. Cliquez sur le bouton "Je ferai attention, je vous le promets!" bouton.
  3. Tapez ‘timeout’ dans le champ de recherche et le paramètre network.http.response.timeout sera affiché.
  4. Double-cliquez sur le paramètre network.http.response.timeout et entrez la valeur de temps (en secondes) que vous ne voulez pas que votre session n'expire pas, dans la zone.
4
Hanu

Pour Google Chrome (testé sur la version 62)

J'essayais de maintenir en vie une connexion de socket de l'API d'extraction de Google Chrome vers un serveur express distant et j'ai découvert que les en-têtes de requête devaient correspondre aux paramètres de connexion <net.socket> natifs de Node.JS.

J'ai défini l'objet en-têtes 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, je configure 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))

ATTENTION

Faites preuve de bon sens et assurez-vous que les utilisateurs auxquels vous laissez la connexion socket ouverte sont validés et sérialisés. Cela fonctionne également pour Firefox, mais il est très vulnérable si vous maintenez la connexion TCP ouverte plus de 5 minutes.

Je ne sais pas comment fonctionnent certains navigateurs moins connus, mais je vais également annexer à cette réponse les détails du navigateur Microsoft.

0
akiespenc