2010-05-03 2 views
0

Есть ли способ кэшировать виджетов. Например, если вы размещаете свои виджеты на веб-сайтах большого объема, тогда каждый раз, когда кто-то получает доступ к этому сайту, на ваш сервер вызывается вызов для получения кода виджета. Таким образом, мой сервер может перегружать слишком много, чтобы отображать виджет. Могу ли я кэшировать HTML-код виджета и поместить его на какой-то сервер, например, Akamai. Любые предложения или советы высоко оценены.Можно ли кэшировать виджеты?

Заранее спасибо.

ответ

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 в базе данных и создает ссылки с соответствующий тег rel, вытягивая это значение из чего-то быстрого, как Memcached. Эта часть будет сильно отличаться в зависимости от выбранного вами языка.