ASP - Mise en cache de données SQL

Résolu/Fermé
sipherion Messages postés 1798 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 - 6 nov. 2013 à 10:47
 kam - 3 févr. 2014 à 16:44
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.
A voir également:

4 réponses

sipherion Messages postés 1798 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
3 févr. 2014 à 14:33
Mon système de mise en cache concerne des fichiers Javascript :


<!-- #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.
1
sipherion Messages postés 1798 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
7 nov. 2013 à 15:48
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.
0
Bonjour,

Je recherche à faire exactement la même chose que toi mais avec des fichiers xml.
Pourrais-tu me partager ton code ? Cela m'enlèverai une grosse épine du pied !

Merci d'avance !
0
Merci infiniment !
Je m'en vais tester tout ça ;)

Kam
0