2012-05-30 9 views
6

To znaczy, mogę używać, aby ten widżet:Po co martwić się o utworzenie czystego widgetu javascript/jquery, kiedy mogę załadować go do elementu iframe?

<script src="http://www.mywebsite.com/widget/widget.js?type=normal" type="text/javascript"></script> 
<div id="archie-container"></div> 

że sprawdzić, czy jQuery jest gospodarzem stronie internetowej; w przeciwnym razie załaduje go i zrobi zapytanie ajax/jsonp. Zgodnie z sugestią tego tutorial.

Zauważyłem duże trobuły na temat rodziców CSS, integruję inne wtyczki jquery (np. Cykl) i zarządzam danymi pomiędzy tym "interfejsem" a wywołaniem ajax.

Dlaczego powinienem to zrobić, skoro mogę używać ramka iframe? Zauważyłem też, że jeśli załaduję jquery z widget.js i (oczywiście) umieściłem go w elemencie iframe (aby móc zarządzać oddzielnymi funkcjami), biblioteka jest pobierana z pamięci podręcznej. Więc nie ma żadnego przeciążenia.

Czy to wystarczy dla ciebie w tym approch? Albo brakuje mi czegoś?

Zauważyłem również, że 90% widżetów (takich jak FB, twitter itp.) Korzysta z tej strategii (z iframe).

+1

Możesz użyć dowolnej techniki, która działa dla Ciebie. Wszystko zależy od tego, co robisz. –

Odpowiedz

5

Element iframe jest izolowany od reszty strony.

Polecam przeczytać: iframes vs ajax

jeśli coś odizolowane od reszty strony, a prostego ruchu z iframe. Jeśli widget wchodzi w interakcje z resztą strony, przejdź do AJAX.

+0

Czy masz jakieś samouczek dotyczący "elementu iframe jest buforowany z powodu biblioteki ze strony hosta". Nie wiedziałem o tym wcześniej ... dlatego zawsze chciałem uniknąć iframe! Ale to jest miłe ... – markzzz

+0

@markzzz: Najłatwiejszym sposobem rozwiązania tego problemu jest dodanie do kwerendy parametru timestamp, aby zagwarantować, że jest unikatowy. Można to również zrobić, mówiąc przeglądarce, aby nie buforowała zawartości w nagłówkach. –

+0

@dj_segfault: nie, w rzeczywistości chcę buforowania :) Nie wiedziałem, że to standardowe zachowanie ...! Chciałbym przeczytać więcej na ten temat ... – markzzz