Maison  >  Questions et réponses  >  le corps du texte

Problème avec location.reload

start.onclick=function newGame(){
    location.reload();
    flag = selectModel[0];
    console.log(flag);
};

Je voulais à l'origine actualiser la page et attribuer l'indicateur de variable globale après avoir cliqué. Actualisation réussie, mais échec de l'attribution de la valeur ; si location.reload est commenté, la valeur peut être attribuée.

Est-ce que location.reload() est asynchrone ? Lorsque la valeur est attribuée, l'actualisation n'est pas encore exécutée, mais l'opération d'actualisation est effectuée une fois l'affectation terminée.

给我你的怀抱给我你的怀抱2713 Il y a quelques jours1198

répondre à tous(3)je répondrai

  • 習慣沉默

    習慣沉默2017-05-18 10:53:54

    Vous devez d'abord comprendre le cycle de vie du javascript dans le navigateur.

    Après avoir rechargé la page et entré dans le cycle de vie suivant, le drapeau attribué lors du cycle précédent sera détruit même si l'affectation est réussie.

    Actualiser la page équivaut à tout jeter et à recommencer, tout comme rouvrir la page.

    Quelle exigence étrange vous obligerait à modifier le drapeau global après avoir cliqué sur un lien pour l'actualiser ?

    répondre
    0
  • 怪我咯

    怪我咯2017-05-18 10:53:54

    Vous pouvez enregistrer ce drapeau sur localdtorage

    répondre
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-18 10:53:54

    Il devrait être synchronisé, donc une meilleure façon est de considérer ceci :

    start.onclick=function newGame(){
        flag = selectModel[0];
        console.log(flag);
        setTimeout(() => {
            location.reload();
        });
    };

    répondre
    0
  • Annulerrépondre