preloader skryptu w jquery

0

Witam
Da rade wczytać skrypt po załadowaniu już całej strony np. w Jquery?

Problem polega na tym, że podczas wgrywania całej strony (skladajacej sie lewa.php, srodek.php, prawa.php) jest spore opóźnienie, skrypt jest podłączony do srodek.php

<script type="text/javascript" src="js/skrypt.js"></script>

i dopiero po wczytaniu tego skryptu (ok 1sek), wyswietla się prawa czesc strony - prawa.php). W rezultacie ta prawa czesc strony przy odswiezaniu jest ladowana z opoznieniem :/

Probówałem funkcji $.getScript i $(document).ready(function(){ $('#warstwa').load('js/skrypt.js'); });

ps. Moze cos zle wykonuje albo zla funkcja... dopiero ucze sie jq

dzieki za wskazówki

1

Da się, ale to nie musi być nawet konieczne. Możliwości masz kilka, więc się nie martw: na pewno coś się z tym da zrobić.

Najprostsza opcja to... przenieść <script> z tym skryptem, podobnie zresztą jak wszystkie pozostałe tagi script, na dół kodu strony. Tuż przed tagiem zamykającym </body>.

To rozwiąże Twój problem: skrypt wczyta się jak już cała strona będzie wyświetlona. Jeśli nie możesz zrobić tej prostej zmiany z powodu architektury Twojego kodu PHP, to z tą architekturą jest coś nie tak. Jeśli nie możesz przenieść skryptu ponieważ używa on document.write, to zamiast document.write użyj metod DOM lub innerHTML (m.in. dlatego użycie document.write jest niezalecane).

0

ale tam gdzie zamieszczę skrypt - tam się wydrukuje, ten skrypt wyświetla tabelkę z danymi...

tak zastosowałem document.write w tym skrypcie :/ jak to przerobic?

document.write('

<script type="text/javascript" src="...." /></script>');</p>

własnie... bo ten skrypt wyswietlał się, ale tylko ten skrypt <lol> reszty strony nie drukowało

1

A po co wewnątrz jednego skryptu masz document.write, które wypisuje m.in.... kolejny skrypt?

Dopisać coś do niemal dowolnego miejsca w kodzie możesz bardzo prosto -- czy to za pomocą jQuery, czy bez tej biblioteki.

Skoro używasz jQuery, to żeby wstawić trochę kodu HTML na koniec elementu o ID "warstwa", użyj wywołania:

$("#warstwa").append("<div>Kod HTML</div>");

Powyższy kod JavaScript powinien być w zewnętrznym pliku .js, który powinieneś dołączać do dokumentu przy samym końcu, przed </body>.

0

ta metoda działa, tylko gdy wpisze tam paragraf lub inny tag html'a to drukuje bez problemu. Miałem skrypt w zewnetrznym pliku js
bo wlidator wywalał na tym sporo błędów

Dokładnie ten kod drukuje niewielka tabelkę z kursami:

"

<script type="text/javascript" src="http://dodatkinabloga.pl/jscr/kursy,nfgI7A.js?waluty=usd-eur-chf-gbp&amp;col&amp;w&amp;img&amp;k&amp;s&amp;c1=F4F4F4&amp;c2=F4F4F4&amp;c3=0" /></script>"</p>

wpisując

$("#warstwa").append("

<script type="text/javascript" src="http://dodatkinabloga.pl/jscr/kursy,nfgI7A.js?waluty=usd-eur-chf-gbp&amp;col&amp;w&amp;img&amp;k&amp;s&amp;c1=F4F4F4&amp;c2=F4F4F4&amp;c3=0" /></script> ");

nie wyświetla nic... jak rozwiązać ten problem?

dzieki

0

Ale tam nadal masz document.write -- tylko tym razem w tym skrypcie na dodatkinabloga.pl . Ten skrypt też wypadałoby przerobić podobnie jak poprzedni. Tabelkę należałoby wstawiać za pomocą append() lub metod DOM (appendChild), a nie tego nieszczęsnego document.write.

0

niestety nie moge edytowac tego skryptu bo siedzi na innym serwerze, to jest dostepna wtyczka...

można zamknąc temat, znalazłem inne rozwiązanie, dzieki za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1