可以缓存小部件吗?

时间:2010-05-03 07:24:16

标签: caching widget

有没有办法缓存小部件。例如,如果您将小部件放在高容量网站上,那么每次有人访问该网站时,都会调用您的服务器来获取小部件代码。这样我的服务器就可以过多地重载以显示小部件。我可以缓存小部件HTML代码并将其放在像Akamai这样的服务器上。任何建议或提示高度赞赏。

提前致谢。

1 个答案:

答案 0 :(得分:0)

你确定可以,但你需要能够以某种方式获得小部件。我发现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>

然后,您可以使用一些代码服务器端将代码段上传到CDN,将其URL保存在数据库中,并通过从Memcached这样快速的内容中提取该值来生成具有相应rel标记的链接。根据您选择的语言,该部分会有很大差异。