【发布时间】:2010-05-03 07:24:16
【问题描述】:
有没有办法缓存小部件。例如,如果您将小部件放在高容量网站上,那么每次当有人访问该站点时,都会调用您的服务器以获取小部件代码。这样,我的服务器可能会因为显示小部件而过载。我可以缓存小部件 HTML 代码并将其放置在 Akamai 等服务器上吗?任何建议或提示高度赞赏。
提前致谢。
【问题讨论】:
有没有办法缓存小部件。例如,如果您将小部件放在高容量网站上,那么每次当有人访问该站点时,都会调用您的服务器以获取小部件代码。这样,我的服务器可能会因为显示小部件而过载。我可以缓存小部件 HTML 代码并将其放置在 Akamai 等服务器上吗?任何建议或提示高度赞赏。
提前致谢。
【问题讨论】:
您当然可以,但您需要能够以某种方式获取小部件。我还发现 EdgeCast 与 Akamai 相比具有更高的性能(更快的响应、更快的下载)。
例如,假设您在 http://cdn.mysite.com/form1.html 获得了一个表单的代码,并且用户点击了一个链接,该链接将显示该表单。
使用类似这样的脚本:
$(document).ready( function() {
$(".widget .trigger").click( function() {
url = $(this).attr("rel");
$(this).parents(".widget").load(url, function () {
// Do what needs to be done to the widget code here
// Example: make it an AJAX form.
});
});
});
然后有这个标记:
<div class="widget">
<a href="javascript:void(0);" rel="http://cdn.mysite.com/form1.html">Widget Trigger</a>
</div>
并在您的 CDN 上提供此内容:
<form action="/ajax/hander/" method="POST">
<fieldset>
<legend>This is a pretty cool form</legend>
<label for="form1input1">Make this cool:</label>
<input id="form3input1" name="something" type="text" />
<input type="submit" value="Coolify" />
</fieldset>
</form>
然后,您可以有一些代码服务器端将 sn-ps 上传到您的 CDN,将其 URL 保存在数据库中,并通过从诸如 Memcached 之类的快速提取该值来生成具有适当 rel 标签的链接。这部分会根据您选择的语言而有很大差异。
【讨论】: