Les applications ASP (ASP) (ASP) (ASP) sont les données HTML présentées aux utilisateurs via la concaténation des chaînes. Cet article compare plusieurs façons de créer ce flux de données HTML et, dans certains cas, certaines méthodes surpassent les autres en performances. Cet article suppose que vous avez déjà une certaine connaissance de l'ASP et de la programmation de base visuelle.
Lors de l'écriture d'une page ASP, le développeur crée en fait un flux de texte formaté qui est écrit au client Web via l'objet de réponse fourni par l'ASP. Il existe une variété de façons de créer ce flux de texte, et la méthode que vous choisissez aura un grand impact sur les performances et l'évolutivité de votre application Web. Plusieurs fois, lorsque j'ai aidé les clients à optimiser les performances de leurs applications Web, j'ai constaté que l'un des moyens les plus efficaces est de modifier la façon dont les flux HTML sont créés. Cet article présentera plusieurs techniques courantes et testera leur impact sur les performances d'une page ASP simple.
De nombreux développeurs ASP suivent de bons principes d'ingénierie logicielle et modularisent le plus possible leur code. Cette conception utilise généralement des fichiers comprenant des fonctions qui formatent des parties discontinues spécifiques de la page. La sortie de chaîne de ces fonctions (généralement le code de table HTML) peut créer une page complète via diverses combinaisons. Certains développeurs ont amélioré cette approche en déplaçant ces fonctions HTML dans des composants COM de base visuels, espérant profiter des performances supplémentaires fournies par le code compilé.
Bien que cette approche de conception soit bonne, la méthode utilisée pour créer des chaînes qui composent ces composants de code HTML discontinus auront un grand impact sur les performances et l'évolutivité du site Web, que l'opération réelle soit effectuée dans un fichier ASP inclut ou dans un composant COM de base visuel.
Veuillez consulter l'extrait de code suivant de la fonction WriteHTML. Un paramètre nommé Data n'est qu'un tableau de chaînes contenant des données à formater dans une structure tabulaire (par exemple, les données renvoyées à partir d'une base de données).
Fonction writehtml (data) dim nrepfor nrep = 0 à 99 shtml = shtml & vbcrlf _ & "<tr> <td>" & (nrep + 1) & "</td> <td>" _ & data (0, nrep) & "</td> <td>" _ & data (1, nrep) & "</ td>" _ & data (1, nrep) & "</ td>" _ & data (1, nrep) & "</ td>" _ & data (1, nrep) " Data (2, NREP) & "</td> <td>" _ & data (2, nrep) & "</td> <td>" _ & data (3, nrep) & "</td> <td>" _ & data (4, nrep) & "</td> <td>" _ & data (5, nrep) & "</td> </tr>" Fonction NextWriteHtml = shtmlend
Il s'agit d'une méthode courante utilisée par de nombreux développeurs ASP et Visual Basic lors de la création de code HTML. Le texte contenu dans la variable SHTML est renvoyé au code d'appel et écrit au client à l'aide de Response.Write. Bien sûr, cela peut également être exprimé comme un code similaire qui intègre directement une page qui ne contient pas la fonction WriteHTML. Le problème avec ce code est que les types de données de chaîne (BSTR ou Basic Strings) utilisés par ASP et Visual Basic ne peuvent pas réellement modifier la longueur. Cela signifie que chaque fois que la longueur de chaîne change, la représentation originale de la chaîne en mémoire sera corrompue et une nouvelle représentation contenant les nouvelles données de chaîne sera créée: cela augmentera le fonctionnement de l'allocation de la mémoire et de la mémoire de traitement. Bien sûr, ASP et Visual Basic ont résolu cela pour vous, de sorte que la surcharge réelle n'apparaîtra pas immédiatement. L'allocation et la mémoire non allouée nécessitent que le code d'exécution de base déverrouille chaque verrou dédié, il nécessite donc beaucoup de frais généraux. Ce problème devient particulièrement évident lorsque les cordes deviennent de grandes et de gros morceaux de mémoire doivent être alloués et traités de manière rapide et continue, car elle se produit lors d'une grande concaténation de cordes. Bien que ce problème ait peu d'impact sur un environnement unique, il peut provoquer de graves problèmes de performances et d'évolutivité dans les environnements serveurs (par exemple, les applications ASP fonctionnant sur un serveur Web).