首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于如何使用动态会话数据处理静态响应的建议

关于如何使用动态会话数据处理静态响应的建议
EN

Stack Overflow用户
提问于 2011-11-27 04:47:22
回答 1查看 265关注 0票数 0

假设有一个高度缓存的网站,几乎每个GET操作的输出都被缓存到一个html文件中,该文件可以直接从HTTP服务器访问,而无需执行服务器端的CGI操作。现在设想一下,除此之外,JavaScript还被用来使用AJAX过滤HTML的响应。AJAX响应只包含页面的适当响应(因此,对于标准HTML页面,它将包含除周围布局之外的所有内容,对于modals,它将只包含模态框HTML等)。

现在,让我们想象一下,HTML内容可能被中立地缓存(当没有人登录时),或者为登录的人缓存。页面中有一些与会话数据相关联的区域(如欢迎消息、概要文件链接等)这些数据是特定于会话的。但是由于我们使用的是JavaScript,所以我们可以缓冲AJAX响应,更改会话元素值,然后在用户不知道任何会话热交换的情况下将其放入DOM中。这只依赖于GET请求和页面,而实际内容不依赖于100%的会话。

下面是我的问题。如果我要实现这个功能(相信我会实现),那么在用户浏览页面时,我应该如何跟踪会话活动呢?对于传统的服务器端操作,每当用户访问页面时,服务器端框架就会更新会话并跟踪与会话相关的变量。使用静态HTTP请求操作,可以避免所有服务器端的参与。因此,我需要找出一些方法来跟踪会议的进展;以下是我的方法:

1)执行两个AJAX请求(或在需要时执行另一个请求):,一旦用户查询页面,内容将以静态HTML的形式下载。但是,在查询该页面的同时,另一个AJAX请求将被服务到会话特定的URL/服务器,更新/查询会话状态。这可以并排进行,也可以在提出每几个请求之后执行。

ETag = HTML文件保持不变,HTML文件可以设置为有一个HTML或未来的过期头,JavaScript只能缓存静态HTML并用于脱机浏览,会话服务器可以用于会话活动的专用、优化和配置。Cons =执行两个AJAX请求,对可能冗余的数据进行过多轮询,使会话处理与内容服务器分离。

2)使用一个中间代理,它将会话数据作为一个跟踪会话JSONJSONJSONJSONJSONJSONJSONJSONJSON-1请求向服务器发出请求。在本地访问会话数据并执行另一个HTTP请求(本地或远程)之间有一个代理,然后将该请求与前面获取的会话数据发现连接起来。浏览器的响应是一个干净的HTML代码副本,其中包含JavaScript特定的会话内容,然后在同一时刻更新所有内容。

每件事都是一次下载的,只需要一次连接,就像正常的HTTP请求一样,当使用动态内容代理时,Cons =缓存会变得很困难,内容长度可能需要搜索并替换为附加数据,可能不适用于某些浏览器吗?

3)使用Comet对会话数据进行连接,可以在网站连接开始时建立持久的、反向的AJAX彗星连接。然后,所有静态-HTML请求都可以正常访问。所有与会话相关的请求都可以从comet连接访问。

优点=静态内容和动态内容的分离。Cons = Comet不受很好的支持,工作也不太好,服务器延迟可能与相同的起源策略发生冲突。

你们认为这个问题应该怎么解决?你觉得这可行吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-15 03:20:53

我发现的解决方案是使用模板数据动态数据相互分离。要单独实现这一点,工作量太大,太麻烦了,所以您可以使用MVC框架提供带有模板的JSON请求(AngularJS、KnockoutJS、EmbedJS等)。或者你可以坚持使用模板在一般情况下。记住,这破坏了搜索引擎优化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8283711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档