J'ai une application qui affiche un écran de miniatures d'images, chaque image est d'environ 80k et elles sont stockées dans une base de données. Pour que le temps de réponse soit raisonnable, l'appilcation affiche une image d'espace réservé lors du premier démarrage et du téléchargement ultérieur des images à partir du serveur. Je m'attends à montrer environ 40 images sur l'écran à la fois, c'est donc ma taille de lot. Quelle est la meilleure façon de servir ces images au client? J'ai deux options en tête.Méthode la plus efficace pour transférer des images vers un client Silverlight
Créez un service de données ADO.NET qui expose la table de base de données Images au client. Le client peut demander de manière asynchrone les images, une à la fois, et les afficher à mesure qu'elles reviennent du serveur. J'ai implémenté cette solution et cela semble fonctionner correctement; la vitesse n'est pas excellente et je sens que je pourrais mieux utiliser le tube Http en demandant peut-être 3 images à la fois.
Créez un HttpModule sur le serveur qui recherche les requêtes ressemblant à /Images/1.jpg, puis lit la base de données et renvoie les données demandées. Du côté client, je peux avoir plusieurs objets Image dont la source pointe vers les Urls virtuelles sur le serveur. Ma théorie est que simplement en donnant Silverlight beaucoup urls à traiter, il peut être en mesure de transférer les images plus efficacement que mon code dans l'option 1.
Est-ce que l'une de ces méthodes plus efficaces ou est-il une autre technique pour ce faire? Merci!
Est-ce que la mise en cache impliquent l'écriture du code dans la page ASPX? Comment ça marche? –
Nous faisons notre propre mise en cache, mais vous pourriez envisager une sorte de cadre de mise en cache comme Velocity ou MemCached –