这是一个概念上的问题但希望在这里允许,因为可能有一种技术可以解决我不知道的挑战。
我有一个ASP.NET驱动的Web应用程序,我想使用HTML输出缓存来提高性能。我还需要添加cookie同意通知,这对所有访问者都必须可用,所以当然我不能依赖Javascript。因此,是否显示此通知的选择取决于代码逻辑服务器端基于持久访问者同意的cookie。但是,如果我正在提供缓存页面,那么这个代码当然不会运行。
所以我的问题是:欧盟对cookie同意通知的要求是否意味着我们的开发人员不能使用任何适用于完整HTML输出的缓存机制?
我的具体用例是Kentico CMS的一个实例,它有自己的输出缓存机制,带有各种变量来区分缓存页面,其中一个是用户。但显然我不想为每个可能的访问者缓存每个页面的版本,因为这会失控。那么这个难题有什么解决方案我不知道吗?
也许看看俄罗斯玩偶缓存,我不是百分之百确定它是否适用于此但它涉及创建多个缓存并将它们拼接在一起,因此您只需更新已更改的缓存。
类似的概念可能对你有用。分别缓存块的输出,然后根据cookie值显示它们。
我看到的问题是,如果没有至少一些javascript你被迫执行表单加载来更新cookie值。
好吧,当你使用完整输出缓存并且你不能使用Javascript时,我想到的唯一丑陋的解决方案是使用仅提供cookie法律同意的IFRAME。使用IFRAME引用的页面不会被缓存,因此您可以决定是否提供空内容或cookie法律同意。
iframe将定义如下:
<iframe src="https://[your_cookie_law_consent_page]" style="position: absolute;z-index: 99999;bottom: 0px;width: 100%;height: 70px;overflow: hidden;background-color: transparent;border: none;" allowtransparency="true" scrolling="no"></iframe>
[your_cookie_law_consent_page] =您提交Cookie法律同意或空透明内容/无内容的页面或处理程序。我会使用ashx处理程序或您可以使用新的kentico页面,该页面不会被cookie法律同意webpart缓存,该部分已正确设置“可见”条件。
这种方法有一些严重的问题,如:
因此,如果您打算使用此解决方案,则必须小心放置,可能将其与NOSCRIPT标记一起使用...
但对于这种情况,我仍然推荐JavaScript ...
默认情况下,条形图可见,并隐藏在JS中,而不是默认情况下不可见并由JS显示。
如果有合法用户因任何原因禁用了javascript,他们仍然可以看到该消息,但无法隐藏它。