Pewnego dnia miałem inne pytanie od innego programisty. Pamiętam (bardzo dawno temu) zastanawianie się nad tym samym. Dlaczego nigdy nie uwzględniono tagu dołączanego po stronie przeglądarki? A może to było?
W szczególności z tagiem, który poinstruował przeglądarkę, aby zawierała dodatkowy kod HTML z innych źródeł. np <include src="http://server/foo/bar.html">
. Wielu ludzi będzie wykonywać wywołania javascript i wypełniać je, innerHTML
aby osiągnąć to samo, gdy przeglądarka może to zrobić poza silnikiem javascript.
Zagnieżdżenie <HTML>
s <BODY>
(tj.) Byłoby bolesne, ale i tak musimy rozważyć ten aspekt gdziekolwiek.
Odpowiedzi:
Czy jestem ostatnią osobą na ziemi, która pamięta (tylko Netscape 4 )
layer
iilayer
tagi?Netscape 4 pozwoliło również
div
tag miećsrc
atrybut, który osiągnąłem samo.Netscape przesłał je do W3C, który postanowił ich nie uwzględniać -
iframe
zamiast tego użyj .źródło
document
obiekt podlegający Zasadom Same Origin; były efektywnie pozycjonowane iframe.Z pewnością poprosił o to każdy początkujący autor stron internetowych, który jeszcze nie opracował dołączeń po stronie serwera, już na początku listy www-html. Ale w tamtych czasach W3 z przyjemnością całkowicie ignorowały presję autora.
Gdyby zezwolono na włączenie do innej witryny, byłaby to katastrofa bezpieczeństwa. Możesz pobrać stronę z banku użytkownika i odczytać z niej treść. (Początkowo skrypty DOM były ograniczone, ale nadal można było z nich czytać
document.links
,document.images
funkcje skryptowe upuszczane przez stronę docelową itp. Od tego czasu możesz robić, co chcesz, z importowanej zawartości).Gdyby włączenie między witrynami nie było dozwolone ... cóż, ta funkcja nie miałaby żadnej przewagi nad włączeniami na serwerze. Byłoby więcej, wolniej pracować dla klienta, aby serwer mógł sobie poradzić lepiej. W przeciwieństwie
<iframe>
do tego dołączenie musiałoby blokować ładowanie strony. SSI byłyby pod każdym względem lepsze.źródło
Oni zrobili. Stało się
<frameset>
tagiem. Niedługo potem dodali<iframe>
tag.Większość wczesnych serwerów obsługiwanych po stronie serwera zawiera, więc prawdopodobnie uwzględnienie tekstu po stronie klienta było niepotrzebne, biorąc pod uwagę, że ta sama funkcjonalność była dostępna również z ramkami.
źródło
<iframe>
. To co to za . To naprawdę niewiele różni się od<div>
zoverflow:auto;
Obiekt nadal renderuje się w ramce i nie masz dostępu DOM do „danych”. To, co programiści powinni byli podać lata temu, to sposób na włączenie fragmentów kodu z prostym znacznikiem. Nawet jeśli ten tag ma ograniczenia piaskownicy domen, przydatne byłoby podzielenie funkcji na części, poprawienie konserwacji i wykorzystanie buforowania przeglądarki.
Wiem, że istnieje wiele dobrych wtyczek jquery, które to robią, i wiele skryptów po stronie serwera, ale nie ma dobrego powodu, aby nie obsługiwać takiego tagu. IMO to dobre pytanie „Dlaczego po stronie klienta nie ma tagu?”
Jeśli podoba Ci się jquery, dobra strona zawiera skrypt: inc: Super-mała strona klienta zawiera wtyczkę JavaScript jQuery
źródło
Czy próbowałeś
Myślę, że jest to zaimplementowane w większości przeglądarek.
źródło
Warianty
<include>
znacznika były rzeczywiście brane pod uwagę we wczesnej historii HTML , ale nigdy nie zaszły zbyt daleko.źródło