2010-05-03 71 views
0

有沒有辦法緩存小部件。例如,如果您將小部件放置在大容量網站上,那麼每次有人訪問該站點時,都會對您的服務器進行調用以獲取小部件代碼。這樣,我的服務器可能會得到太多的負擔,只是爲了顯示小部件。我可以緩存Widget 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保存在數據庫中,然後生成鏈接通過從Memcached等快速提取該值的適當的rel標籤。根據您選擇的語言,該部分會有很大差異。

相關問題