Je me demande si un bloc javascript/fonction est toujours disponible une fois chargé. Parce que j'ai testé quelque chose et maintenant je suis un peu confus. J'ai défini un bloc de script dans un div. Le bloc de script a une fonction de gestion d'événements pour qu'un élément recharge le div avec ajax. L'appel ajax retourne html clair de la div et le remplace par un courant. Mais cela signifie remplacer le script qui fait l'exécution aussi. J'ai pensé que le script aurait été coupé de l'exécution après l'instruction de remplacement. Mais ce n'est pas le cas. Les lignes de code après l'instruction de remplacement ont été exécutées Comment fonctionne cette fonctionnalité. Comment décrivez-vous la durée de vie d'un bloc de script?Comment connaître la durée de vie d'un bloc de script ou d'un code javascript?
Répondre
Lorsque le code contenu dans un élément script
est évalué, le résultat de cette évaluation de code devient une partie de l'environnement d'exécution de la page. La suppression de l'élément script
ne supprime pas les structures résultantes (fonctions, etc.) de l'environnement. Par conséquent, si le script définit des fonctions ou connecte des gestionnaires d'événements à des éléments ou crée de nouvelles propriétés sur des objets existants (y compris l'objet global), ces fonctions, gestionnaires et propriétés restent en mémoire, même si le script
les définit supprimé du DOM (soumis à la récupération de place JavaScript habituelle, par exemple, les objets non référencés n'importe où sont éligibles pour GC, mais l'élément script
n'a aucune incidence sur cela). L'élément script
est simplement un mécanisme permettant de transmettre le code au navigateur.
- 1. Python Durée de vie
- 2. prolonger la durée de vie
- 3. Instance gestion de la durée de vie
- 4. Durée de vie des paramètres
- 5. durée de vie de la variable constante?
- 6. Durée de vie de QTcpSocket
- 7. Durée de vie de la connexion TCP
- 8. Durée de vie de la connexion SQL
- 9. Durée de vie d'un singleton
- 10. Quelques questions sur la durée d'affichage/la durée de vie
- 11. Session Jquery Durée de vie
- 12. Durée de vie ThreadPool & Object
- 13. PHP, Ajax, et la durée de vie de la requête
- 14. oledbtransaction & oledbconnection durée de vie
- 15. Autofac MVVM - Durée de vie
- 16. UIGraphicsGetCurrentContext() courte durée de vie
- 17. Étendre la durée de vie de la session dans Symfony2
- 18. Clé Kerberos Durée de vie
- 19. structureemap objectfactory durée de vie
- 20. Ninject - comment injecter pendant la durée de vie de l'objet?
- 21. Java durée de vie de fil
- 22. Durée de vie des objets dans Wordpress
- 23. Suivi de la durée de vie variable automatique?
- 24. Problème de durée de vie du service
- 25. Comment raccourcir la durée de vie des particules Cocos2D?
- 26. Comportement de service WCF Durée de vie
- 27. Durée de vie des cookies de session
- 28. C++ extension de durée de vie &&
- 29. Durée de vie d'une variable statique
- 30. durée de vie de paramètre de référence
Merci pour la réponse. J'ai une autre question. Après avoir rechargé div, le même bloc de script avec exactement les mêmes fonctions a été chargé. Alors sont-ils dublés ou remplacés ou ignorés? –
@HalilIbrahim: Le code est à nouveau exécuté. Si vous avez des fonctions déclarées à portée globale, celles déjà existantes seront remplacées par de nouvelles. Si vous avez des variables globales déclarées * sans * initialisateurs (donc, juste 'var foo;' pas 'var foo = 42;'), puisque la variable est déjà déclarée, la seconde déclaration est ignorée. Si vous avez des initialiseurs ou des affectations (donc, 'var foo = 42;' ou simplement 'foo = 42;'), ceux-ci sont exécutés à nouveau et donc 'foo' est défini (back) à' 42'. Etc. Tous les effets de l'exécution du code une seconde (troisième, quatrième) fois se produisent. –
@Crowder: Merci pour la réponse. –