Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Sitecore 6.4中存储匿名访问者的个性化详细信息_Sitecore_Sitecore6 - Fatal编程技术网

在Sitecore 6.4中存储匿名访问者的个性化详细信息

在Sitecore 6.4中存储匿名访问者的个性化详细信息,sitecore,sitecore6,Sitecore,Sitecore6,我们正在使用一个小应用程序(Flash)来让访问者识别他们的内容偏好。该应用程序的最终结果是一个项目列表,我们将其作为“您可能感兴趣的内容”呈现给用户(将其视为类似于亚马逊的“您构建的页面”)。访问者的页面需要使用GUID作为永久链接进行访问,并且可以转发给其他访问者以查看相同的内容。我们没有登录或会员资格,因此所有访客都是匿名的 我应该在哪里以及如何存储每位访客的项目列表 目前,我们正在为每个访问者页面在内容树中创建一个项目,该项目只包含用户感兴趣的选定内容项目的引用。我们担心这会导致大量内容

我们正在使用一个小应用程序(Flash)来让访问者识别他们的内容偏好。该应用程序的最终结果是一个项目列表,我们将其作为“您可能感兴趣的内容”呈现给用户(将其视为类似于亚马逊的“您构建的页面”)。访问者的页面需要使用GUID作为永久链接进行访问,并且可以转发给其他访问者以查看相同的内容。我们没有登录或会员资格,因此所有访客都是匿名的

我应该在哪里以及如何存储每位访客的项目列表

目前,我们正在为每个访问者页面在内容树中创建一个项目,该项目只包含用户感兴趣的选定内容项目的引用。我们担心这会导致大量内容项,可能会影响整个解决方案的性能

其他可能是使用文件系统(可能是单个XML文件)或SQL查找


这方面的最佳实践是什么,我是否错过了任何可能的选项(OMS中是否有存储此选项的地方?)

我们为客户做了类似的事情(除了我们必须坚持搜索查询,而不是用户偏好,但同样的原则适用)。 我们还要求“访问者的页面需要作为永久链接进行访问,并且可以转发到另一个访问者以查看相同的内容”(尽管没有特别使用GUID)

我们最终做的只是将用户的偏好持久化到查询字符串中。在您的情况下,例如:

http://website/pageThatYouBuilt.aspx?item1={guid}&item2={guid} //etc
当然,这最终会产生ginormousURL,因此您可以将guid放在一个简单的DTO对象中

public class State {
  public Guid Item1 {get;set;}
  public Guid Item2 {get;set;}
}
甚至

public class State {
  public List<Guid> Items {get;set;}
}
当用户访问您的页面时,只需从querystring获取状态,反序列化它,并用您需要的内容项填充页面。 这也有一个好处,访问者可以与其他用户共享他们的链接,他们都可以看到相同的内容

有关protofbuffer的更多信息,请参阅:


顺便说一句,这不是一个特定于sitecore的问题:)

我们为客户做了类似的事情(除了我们必须坚持搜索查询,而不是用户偏好,但同样的原则适用)。 我们还要求“访问者的页面需要作为永久链接进行访问,并且可以转发到另一个访问者以查看相同的内容”(尽管没有特别使用GUID)

我们最终做的只是将用户的偏好持久化到查询字符串中。在您的情况下,例如:

http://website/pageThatYouBuilt.aspx?item1={guid}&item2={guid} //etc
当然,这最终会产生ginormousURL,因此您可以将guid放在一个简单的DTO对象中

public class State {
  public Guid Item1 {get;set;}
  public Guid Item2 {get;set;}
}
甚至

public class State {
  public List<Guid> Items {get;set;}
}
当用户访问您的页面时,只需从querystring获取状态,反序列化它,并用您需要的内容项填充页面。 这也有一个好处,访问者可以与其他用户共享他们的链接,他们都可以看到相同的内容

有关protofbuffer的更多信息,请参阅:


顺便说一句,这不是一个针对sitecore的问题:)

您的案例非常重要,因此您不太可能得到确切的答案。我建议使用分析数据库,如果你假设有大量的访问者,你应该避免使用项目。你的案例非常重要,所以你不可能得到确切的答案。我建议使用分析数据库,如果您假设有大量访客,则应避免使用项目。