相關:How can i rerender Pinterest's Pin It button?如何在使用pinterest「pin it」按鈕時消除過多的HTTP請求?
的Pinterest的設計「別針把它」對their goodies page顯示網站,按鈕,呼喚一個網頁設計師的特殊標記的錨標記插入到自己的網站頁。然後該頁面必須調用。
特殊的錨標籤必須是這樣的:
<a href="http://pinterest.com/pin/create/button/?
url=http%3A%2F%2Fpage%2Furl
&media=http%3A%2F%2Fimage%2Furl"
class="pin-it-button" count-layout="horizontal"></a>
和pinit.js樣板必須是這樣的,和最後針後一定要放在。
<script type="text/javascript" src="//assets.pinterest.com/js/pinit.js">
</script>
據我所知道的,什麼pinit.js代碼確實是這樣的:
- 掃描錨標籤頁
- 查找的特殊標記,明確了「引腳它按鈕「類和href前綴
- 替換具有重新格式化的IFRAME的定位標記。這些iframe的
src
屬性獲得標準化的URL,這些URL指向不同的服務器,而不是pinterest.com,而是來自CDN的pinterest使用的服務器。
這是罰款的靜態網頁,但:
- 它不動態頁面,「用別針把它」按鈕可能被動態地通過jQuery邏輯產生和注入的網頁標記上工作對用戶操作的響應。
- 它需要每個「pin it」按鈕一個iframe,這意味着每個「pin it」按鈕一個HTTP GET。如果您有10張照片,每張照片都帶有一個pinit按鈕,那麼有10個HTTP GET可以幫助您獲得CDN。所有這些GET都是用於名稱相近的資源,但它們都稍有不同,基於要固定的圖像的URL,因此無法緩存。
我想要做的是消除過多的GET。有任何想法嗎?
我有一個想法是:
- 插入只有一個錨標記,樣式爲
display:none;
一個div內。 - 調用pinit.js,這會導致該錨標記的魔術替換以及加載新的iframe。它是無形的,因爲它仍然存在於無形的div中。
- 運行一些額外的JS邏輯來檢查生成的iframe的src屬性的URL,保存pinterest CDN的主機名。
- ?
然後我可以生成pinterest CDN的「標準化」URL,但是......如果我簡單地將它們用作iframe的src 我的邏輯生成,那麼我有與過量GET相同的問題。我所做的全部都是連續調用pinit.js(無論如何都可以緩存)。
有沒有人遇到過這個?
我不得不相信這個設計將會改變 - 它似乎不適合現在它的工作方式。
EDIT
我讀elsewhere該Pinterest的提供了用於「PIN爲」在頁面上的按鈕,適用於當有大量的「PIN它」按鈕的「異步」的機制。不知道那是什麼;我找不到它。
沒有必要編輯Pinterest的JS。查看鏈接的問題和/或[this](http://porizi.wordpress.com/2013/11/07/dynamic-pinterest-button/) – Firsh 2014-02-10 00:57:59
如果您想避免使用JS,那麼需要編輯JS我提到的競爭條件。但是,自從我回答這個問題以來,可能pinterest已經解決了這個問題。這很有可能。 – Cheeso 2014-02-19 02:14:01