Recommandé: ASP met en œuvre l'envoi automatique des e-mails si des pages Web inexistantes Lorsque nous faisons un site Web, nous avons généralement des erreurs dans les actions ou défauts des visiteurs dans notre site Web, provoquant la visite d'une page inexistante. À l'heure actuelle, un message d'erreur 404 apparaîtra. Si vous êtes un visiteur enthousiaste, vous pouvez vous envoyer un e-mail pour vous le rappeler. À ce moment-là, la plupart des gens
Quiconque a écrit un ASP légèrement plus grand sait que la session est vraiment utile. Il peut être utilisé pour enregistrer des variables de données appartenant à l'utilisateur, qui sont à la fois sûres et pratiques. Mais savez-vous vraiment comment fonctionne la session? Peut-être qu'après avoir compris, vous n'oserez plus jamais utiliser cet objet d'amour-haine. Bien que la méthode de passage aux alternatives soit un peu gênante, après des considérations à long terme, je dois le faire.
Tout d'abord, parlons des avantages de la session, qui peuvent être utilisés pour enregistrer les variables de données détenues par le client et ne disparaîtront pas dans la plage de temps. Il s'agit vraiment d'une fonction importante, en particulier celles qui doivent être utilisées par les systèmes avec des membres. Par exemple, le compte de connexion du membre, le temps, le statut et de nombreuses données en temps réel enregistrées dans cet enregistrement, telles que le système d'achat enregistre les produits du panier de l'utilisateur. Ces informations sont nécessaires en privé par chaque utilisateur et le développeur utilise généralement des enregistrements de session pour les traiter.
Cependant, la session dans ASP est composée de cookies et le serveur transmet toutes les informations enregistrées dans la session au navigateur de l'utilisateur sous forme de cookies. Habituellement, les navigateurs économiseront ces cookies. Chaque fois que l'utilisateur clique sur le lien et le connecte à nouveau au serveur, le navigateur transmettra ces cookies au serveur pour le traitement. Ceci est le principe de fonctionnement de la session. Lorsque la quantité de données est plus grande, elle doit être transmise et collectée. Il consomme non seulement la bande passante de la ligne, mais réduit également ses performances, car le serveur doit dépenser plus de ressources pour les actions initiales telles que le traitement en ligne et la reconfiguration de la mémoire. Maintenant, vous pouvez penser: "Je dois utiliser cette fonction, donc je dois sacrifier un peu." Cependant, cet article parle de session. D'une part, c'est d'apprendre à chacun à en utiliser moins; D'un autre côté, il existe bien sûr des alternatives. Ensuite, celui qui monte sur scène est l'objet d'application qui appartient à Global.asa.
L'application est également bonne pour enregistrer et traiter les données temporaires. Ses capacités et son utilisation dans tous les aspects sont les mêmes que la session, mais en comparaison, les données qu'il enregistre est publique, c'est-à-dire un espace variable que tout utilisateur peut partager. L'application n'est pas comme la session, qui ne transmet pas les données à l'utilisateur et n'attend la prochaine fois que la lecture en ligne. Il est enregistré directement dans la mémoire du serveur et les performances sont beaucoup plus rapides que la session.
Étant donné que les objets d'application sont publics, la première chose qui doit être faite est de planifier un domaine commun pour chaque utilisateur, afin que chaque utilisateur ait sa propre zone pour enregistrer des données pour atteindre l'objectif de la session de simulation. Il y a deux façons de le faire maintenant:
1. Initialiser et allouer l'espace mémoire utilisateur à l'avance lorsque le serveur est activé. Habituellement, bien que cette approche occupe beaucoup de ressources dès que le serveur est monté sur le serveur, il évite également de devoir allouer chaque fois que l'utilisateur est en ligne. Cependant, il y a une limitation. L'utilisation de cette méthode doit limiter le nombre maximum de personnes. Puisqu'il est initialisé dès qu'il est activé, nous ne pouvons estimer que l'établissement d'une certaine quantité d'espace mémoire, de sorte que cette méthode est généralement utilisée dans de petits programmes tels que les salles de chat.
2. Cette méthode doit être considérée comme plus appropriée pour les grandes applications. Il adopte une méthode d'allocation dynamique. Ce n'est que lorsque l'utilisateur sera mis en ligne sur le serveur pour la première fois que la ressource sera allouée à cet utilisateur. Le but de ces deux solutions de session simulées est de réduire la consommation de ressources de session, mais après tout, elle est toujours irremplaçable. Nous devons encore utiliser une petite session, ce qui peut au moins réduire beaucoup de charges sur le serveur.
■ Premier plan
Nous commençons d'abord la mise en œuvre de la première solution. Puisqu'il s'agit d'initialiser l'application lorsqu'il est activé, nous devons bien sûr commencer par Global.asa:
L'initialisation est terminée, mais comment l'utiliser? Nous avons juste besoin de modifier les informations stockées à l'aide de la session, telles que le compte et le temps de connexion, dans l'objet d'application que nous avons créé, où l'utilisateur se connecte:
| Ce qui suit est le contenu cité: 'À la recherche d'un espace inutilisé Pour i = 1 à l'application (clientmax) Si application (user_status_ & i) = 0 alors 'Numéro temporaire de l'utilisateur session (index) = i 'verrouillage Application application.lock 'Réglé sur l'état d'occasion Application (user_status_ & i) = 1 'mettre des données variables Application (user_account_ & i) = compte Application (user_logtime_ & i) = maintenant () 'Déverrouillé Application.unlock Sortir pour Terminer si Suivant |
Pour obtenir les données variables pertinentes de l'utilisateur, c'est comme ce qui suit:
Réponse.write (application (user_account_ & session (index))
Vous pouvez constater que vous ne voulez pas utiliser la session? Alors pourquoi la session existe-t-elle dans le code d'origine ci-dessus? Comme mentionné précédemment, cette alternative ne peut pas remplacer complètement la session. Le navigateur n'est pas toujours en ligne avec le serveur. Il sera déconnecté après avoir lu la page. Alors, comment savons-nous si la même personne est en ligne la prochaine fois? Pour le moment, nous devons compter sur la session. Nous donnons à l'utilisateur un ensemble de numéros en temps réel. Ce nombre est le numéro de l'utilisateur dans l'espace variable de l'application. Vous pouvez imaginer qu'il existe de nombreux coffres-forts dans la banque. Vous avez une clé et la clé a un numéro. Le numéro sur la clé permet à l'opérateur de vous conduire à votre propre coffre-fort. Cette méthode a quelques améliorations, mais elle suffit pour les petites applications.
■ Deuxième plan
En ce qui concerne la solution précédente, vous pouvez également penser que notre numéro personnalisé utilise la session pour enregistrer. En parlant de numérotation, l'objet de session fournit une méthode "sessionID". C'est vrai, que nous souhaitions l'utiliser ou non, le serveur aidera automatiquement chaque utilisateur à affecter un nombre, et ce numéro ne sera pas répété. Quant à ce numéro, il est obtenu avec Session.SessionId. Cette numérotation est une action que la session fera certainement, nous pouvons donc l'utiliser pour remplacer le programme de numérotation que nous écrivons nous-mêmes, ce qui permet d'économiser un autre effort et a même une plus grande expansion. Mais en gros, la première solution ci-dessus est toujours utile, comme des salles de chat qui limitent le nombre de personnes et d'autres petites applications. La deuxième alternative suivante est pour les plus grands systèmes.
Si un site Web avec des centaines, des milliers ou même des dizaines de milliers de personnes sur un site Web à chaque seconde, cela ne fonctionnera certainement pas s'il utilise la solution précédente. Supposons que vous fixiez la limite supérieure de 10 000 personnes, une fois le serveur activé, cela vous aidera à couper 10 000 zones pour préparer 10 000 utilisateurs. S'il y a 5 variables dans une région, une variable représente 32 octets (octets) et 10 000 représentent plus de 320 000 K (320 Mo), et une fois que le serveur est activé, il fera tellement de déchets en mémoire et que ses performances seront inévitablement réduites avant la réduction du champ de bataille. Et même si ces chiffres sont très peu nombreux, je pense que 512 Mo de votre propre seront suffisants, le nombre ci-dessus est supposé être un nombre minimum, et on ne sait pas combien de ressources que le serveur utilisera lors de la configuration de la mémoire, il ne sera donc plus et non plus bas. Par conséquent, la solution consiste à configurer dynamiquement l'espace variable de l'utilisateur et à couper une zone lorsqu'un utilisateur est en ligne avec le serveur, il n'est donc pas nécessaire de configurer à l'avance une mémoire énorme.
La deuxième solution est relativement simple à faire. Veuillez jeter toutes les choses dans la première solution. Nous n'avons pas besoin de passer à Global.asa, nous avons seulement besoin de modifier la connexion de l'utilisateur et d'autres endroits utiles:
| Ce qui suit est le contenu cité: Verrouiller ApplicationApplication.LOCK 'Put la variable Données Application (user_account_ & session.SessionId) = compte Application (user_logtime_ & session.SessionId) = maintenant () 'déverrouiller l'application de déverrouillage.unlock |
Pour obtenir les données variables pertinentes de l'utilisateur, c'est comme ce qui suit:
Réponse.write (application (user_account_ & session.SessionId))
Dans le passé, j'ai lu de nombreux livres que ladite session était très difficile à manger des ressources, alors essayez de ne pas les utiliser, mais je dois encore les utiliser quand ils le doivent, et les livres n'ont pas enseigné une solution plus appropriée. Maintenant, lorsque vous comprenez comment remplacer la session, faites-en bon usage! Peut-être que les problèmes d'efficacité qui sont toujours troublés peuvent être beaucoup améliorés!
Partager: Écrivez un programme pop-up plus convivial avec ASP Exemple ASP: Utilisez ASP pour rédiger un programme pop-up plus convivial pour nous aider à créer une méthode d'enquête non annuelle. L'utilisation de fenêtres contextuelles pour afficher les questionnaires est considérée comme le moyen le plus pratique et le plus rapide de collecter les informations de l'utilisateur. Après la production du premier questionnaire