2008-10-24 7 views
2

J'essaie d'obtenir une personnalisation anonyme dans un environnement ASP.net. Je sais que ASP.NET 2.0 fournit Profile. Cependant, je souhaite éviter autant que possible le trafic vers la base de données car le site sur lequel je travaille est un site à trafic relativement élevé.façons efficaces à la personnalisation anonyme en utilisant ASP.NET + Cookie

L'autre solution évidente est cookie, mais étant donné le limitation of cookie, je me demandais si quelqu'un a une méthode efficace pour stocker des informations dans cookie. Est-ce que quelqu'un sait comment amazon ou yahoo traite anon. personnalisation?

En fin de compte, nous essayons de servir différents contenu dynamique à notre base d'utilisateurs sur un ensemble de règles d'entreprise dans les grandes lignes une campagne prédéfinie. La raison est de mesurer le taux de conversion sur notre site. La même campagne peut être utilisée sur toutes les différentes pages du site. La raison pour laquelle je dois définir ceci à un cookie est que l'utilisateur est capable de voir le même contenu servi précédemment si nous voulons qu'il soit. Donc, c'est ce que j'ai en cookie en ce moment.

campaign code:page id:result display 

Et vous pouvez voir que cela va construire s'il y a beaucoup de campagne et chaque campagne est utilisée sur de nombreuses pages.

Merci d'avance!

+0

Combien de personnalisation cherchez-vous à faire? Un simple changement de thème ou beaucoup de panneaux affichés/masqués en fonction des préférences? –

+0

Vous pouvez récupérer des informations de personnalisation de la base de données lors d'un même appel. – DOK

+0

Je ne pense pas parler à la base de données est une option, car il est pour anon. les utilisateurs et moi-même pouvons avoir besoin d'informations différentes. sur une page différente sur notre site. – Herman

Répondre

0

Je créerais un dossier de base de données pour le visiteur et seulement stocker l'ID dans le cookie, de cette façon, vous pouvez consulter tous les détails personnalisés à partir de la base de données, et de garder la taille des cookies au minimum.

Si la vitesse de la base de données est un problème, utilisez peut-être une base de données differrente et un serveur pour stocker les personnalisations.

Alternativly vous pouvez stocker des données personnelles dans le système de fichiers et charger dans la session lorsque le visiteur retourne correspondant à l'ID de cookie.

Si l'identification de la compensation d'utilisateur et cookie est un problème, vous utilisez le froid et le contrôle ActiveX, mais cela nécessite l'installation sur l'ordinateur client, que les gens pourraient s'opposer à.

2

Si la charge de base de données est un problème, vous pouvez récupérer la personnalisation lorsque l'utilisateur démarre sa session, sur le site, puis le stocker sur l'état de la session. De cette façon, seul le premier chargement de la page appellera la base de données.

Vous pouvez stocker l'ID utilisateur dans le cookie. N'oubliez pas de conserver la session dans la base de données lorsque l'utilisateur met à jour ses préférences, et la suppression des anciens enregistrements de base de données au bout d'un moment pourrait également être une bonne idée si de nombreux utilisateurs anonymes visitent votre site Web.

1

Si vous souhaitez conserver les modifications, telles que chaque vue de campagne, il n'y a aucun moyen d'accéder à ces modifications. L'adhésion à ASP.NET n'est pas mauvaise sur un site à volume élevé (> 1 mil par jour), lorsqu'elle est utilisée correctement. Par exemple, vous devriez encapsuler les appels au fournisseur d'appartenance dans un objet mis en cache, et actualiser souvent (courte expiration). Assurez-vous également de définir le cacheRefreshInterval sur le RoleProvider. Cela forcera asp.net à mettre en cache les rôles dans un cookie, afin de réduire l'activité de la base de données.

Une autre façon de regarder est de prendre les conseils de Ady et l'adhésion indépendante dans un DB séparé. Encore une fois, une autre grande fonctionnalité du fournisseur d'adhésion ASP.NET - vous pouvez définir une chaîne de connexion SQL différente, et le charger sur un autre DB et/ou serveur.

Il existe plusieurs autres techniques autour du fournisseur d'appartenances qui peuvent réellement améliorer les performances.Certaines recherches rapides google en vient un certain nombre.

Questions connexes