【问题标题】:can widgets be cached?可以缓存小部件吗?
【发布时间】:2010-05-03 07:24:16
【问题描述】:

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

提前致谢。

【问题讨论】:

    标签: caching widget


    【解决方案1】:

    您当然可以,但您需要能够以某种方式获取小部件。我还发现 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 标签的链接。这部分会根据您选择的语言而有很大差异。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-16
      • 2019-11-21
      • 1970-01-01
      相关资源
      最近更新 更多