ASP - Mise en cache de données SQL
Résolu
sipherion
Messages postés
2462
Statut
Membre
-
kam -
kam -
Bonjour bonjour,
Alors voilà, je développe actuellement un intranet pour ma boite en ASP (pas de .NET, c'est trop récent xD) et je suis confronté à un problème de temps de chargement de la page.
Je créé 6 tableaux dynamiques en Javascript qui sont générés par une requête SQL chacun. Certains tableaux représentent des milliers de données à récupérer de la base et je suis sûr que le temps de chargement long de la page est lié à la récupération des données sur la base de données SQL Server.
Ce que je souhaite faire est simple : je souhaite créer une page de mise en cache qui contient les mêmes données que ma page ASP, mais qui charge une seule fois les données depuis la base et les enregistre en dur dans la page. Ensuite, c'est cette page qui s'affichera sur les postes des agents et qui sera mise à jour une fois toutes les 24h (ou moins, je verrais ça plus tard).
J'ai trouvé quelques infos en ASP .NET, mais je patauge un peu en ASP. Est ce que je peux gérer ça directement depuis IIS (je n'y ai pas accès, je demanderais l'autorisation si c'est nécessaire en passant par là) (j'ai trouvé des infos sur l'activation du buffering, mais rien de plus) ou est ce que je dois créer une fonction spéciale en ASP qui vérifie :
Si le fichier cache\index_cache.html est plus vieux que 24h, alors tu le recréé en exécutant telle et telle requête SQL ;
Sinon, tu affiches la page cache\index_cache.html
J'espère avoir été assez clair dans mes explications ;-)
Merci d'avance pour votre aide.
Alors voilà, je développe actuellement un intranet pour ma boite en ASP (pas de .NET, c'est trop récent xD) et je suis confronté à un problème de temps de chargement de la page.
Je créé 6 tableaux dynamiques en Javascript qui sont générés par une requête SQL chacun. Certains tableaux représentent des milliers de données à récupérer de la base et je suis sûr que le temps de chargement long de la page est lié à la récupération des données sur la base de données SQL Server.
Ce que je souhaite faire est simple : je souhaite créer une page de mise en cache qui contient les mêmes données que ma page ASP, mais qui charge une seule fois les données depuis la base et les enregistre en dur dans la page. Ensuite, c'est cette page qui s'affichera sur les postes des agents et qui sera mise à jour une fois toutes les 24h (ou moins, je verrais ça plus tard).
J'ai trouvé quelques infos en ASP .NET, mais je patauge un peu en ASP. Est ce que je peux gérer ça directement depuis IIS (je n'y ai pas accès, je demanderais l'autorisation si c'est nécessaire en passant par là) (j'ai trouvé des infos sur l'activation du buffering, mais rien de plus) ou est ce que je dois créer une fonction spéciale en ASP qui vérifie :
Si le fichier cache\index_cache.html est plus vieux que 24h, alors tu le recréé en exécutant telle et telle requête SQL ;
Sinon, tu affiches la page cache\index_cache.html
J'espère avoir été assez clair dans mes explications ;-)
Merci d'avance pour votre aide.
A voir également:
- ASP - Mise en cache de données SQL
- Fuite données maif - Guide
- Mise en forme conditionnelle excel - Guide
- Copie caché - Guide
- Mise a jour chrome - Accueil - Applications & Logiciels
- Numéro caché - Guide
4 réponses
Mon système de mise en cache concerne des fichiers Javascript :
Ce fichier ASP est appelé chez moi en cliquant simplement sur un bouton. L'utilité pour moi, ça a été de créer un fichier JS qui contient des tableaux dynamiques, avec environ 5.000 lignes.
<!-- #include file="conndb.asp"-->
<script type='text/javascript'>
alert("Cache correctement raffraichit");
window.open('', '_self', ''); window.close();
</script>
<%
Dim oStream
Set oStream = CreateObject("ADODB.Stream")
oStream.Type = 2
oStream.Mode = 3
oStream.CharSet = "UTF-8"
oStream.Open
contents = "$(function() {" & vbNewLine
'Puis tout le code qui sera stocké dans le fichier .js
oStream.WriteText contents
oStream.SaveToFile Server.MapPath("cache/cds.js"), 2
oStream.SaveToFile Server.MapPath("travaux/cache/cds.js"), 2
oStream.close
'S'il y a d'autres fichiers à mettre en cache :
oStream.Open
'Et on recommence
'Et un petit fichier supplémentaire qui me permet de tester la date du dernier rafraichissement :
oStream.Open
oStream.WriteText "Dernier raffraississement du cache : " & Date()
oStream.SaveToFile Server.MapPath("superviseur/last_refresh.txt"), 2
oStream.close
Ce fichier ASP est appelé chez moi en cliquant simplement sur un bouton. L'utilité pour moi, ça a été de créer un fichier JS qui contient des tableaux dynamiques, avec environ 5.000 lignes.
Bonjour,
Finalement, je me suis créé mon propre système de mise en cache des fichiers en ASP se basant sur la date de dernière modification des fichiers de cache.
S'il y en a certains qui veulent savoir comment, n'hésitez pas à répondre à ce sujet et je vous posterais mon code.
Finalement, je me suis créé mon propre système de mise en cache des fichiers en ASP se basant sur la date de dernière modification des fichiers de cache.
S'il y en a certains qui veulent savoir comment, n'hésitez pas à répondre à ce sujet et je vous posterais mon code.