Agnieszka Kleczewska

Agnieszka Kleczewska Senior Executive,
Mindshare

Temat: Dynamiczne ładowanie Java Script

Witam,

Tworzę pewien formularz, przeznaczony na stronę na platformie SharePoint. Korzysta on ze skryptu Java, który ma obsługiwać Cascaded Dropdowns. Ponieważ jednak skrypt musi wczytać duże ilości danych z list cała strona i pozycje do wyboru ładują się bardzo wolno. Pomyślałam sobie, że może dynamiczne ładowanie skryptu będzie rozwiązaniem. Ponieważ jednak wcześniej nie zajmowałam się taką tematyką to nie wiem czy moje myślenie jest słuszne, a także jak konkretnie zastosować instrukcje, które znalazłam na stronie http://javascript-reference.info/speed-up-your-javascr... ("Load Javascript On-Demand"). Autor proponuje taki oto kod:

function $import(src){
var scriptElem = document.createElement('script');
scriptElem.setAttribute('src',src);
scriptElem.setAttribute('type','text/javascript');
document.getElementsByTagName('head')[0].appendChild(scriptElem);
}

// import with a random query parameter to avoid caching
function $importNoCache(src){
var ms = new Date().getTime().toString();
var seed = "?" + ms;
$import(src + seed);
}


Czy ktoś mógłby mi napisać, które wartości powinnam zmienić żeby dostosować kod do swoich potrzeb? (zakładając np. że mój plik mieści się pod takim adresem: "http://przyklad.pl/szkolenie_sys.js")
Marek Stępień

Marek Stępień JavaScript
developer, front-end
engineer.

Temat: Dynamiczne ładowanie Java Script

Po pierwsze, nie ma czegoś takiego jak "skrypt Java". "Java" i "JavaScript" mają tyle wspólnego, co kot i kotlet. :)

Po drugie, żeby podany kod działał (co nie znaczy: "robił, to co mam na myśli"), nic nie trzeba zmieniać, tylko wywołać którąś z tych funkcji:


$import("http://przyklad.pl/szkolenie_sys.js");


albo


$importNoCache("http://przyklad.pl/szkolenie_sys.js");


Po trzecie, to i tak nie pomoże na podstawowy problem: "skrypt musi wczytać duże ilości danych z list cała strona i pozycje do wyboru ładują się bardzo wolno.". Bo przecież nie tyle skrypt wolno wchodzi, co te dane, prawda?

Dane należy więc podzielić na kawałki i wczytywać tylko te, które są potrzebne w danym momencie. Służy do tego właśnie XMLHttpRequest, podstawowy składnik technik opisywanych buzzwordem "AJAX". :)

Po czwarte - SharePoint to zło. :)

Po piąte - nie chciałbym zabrzmieć bezczelnie, ale: polecam zatrudnić do tego profesjonalistę. Modyfikowanie kodu metodą Ctrl+C, Ctrl+V przez kogoś, kto nie odróżnia JS od Javy, może się źle skończyć. ;-)
Agnieszka Kleczewska

Agnieszka Kleczewska Senior Executive,
Mindshare

Temat: Dynamiczne ładowanie Java Script

Dziękuję za odpowiedź. Podział danych niestety nie wchodzi przy przyjętym rozwiązaniu w grę. A że Sharepoint jest złem to wiem, ale jego wybór nie zależał ode mnie. No i nie jestem bynajmniej profesjonalistką, ale odróżniam Javę od Java Script :P

Dzięki raz jeszcze i pozdrawiam.
Marek Stępień

Marek Stępień JavaScript
developer, front-end
engineer.

Temat: Dynamiczne ładowanie Java Script

Agnieszka Kleczewska:
Dziękuję za odpowiedź. Podział danych niestety nie wchodzi przy przyjętym rozwiązaniu w grę.

No to zminimalizować co się da (YUI Compressor, ostatecznie JSMin), i skompresować przez mod_gzip lub coś w tym rodzaju. Wiele to jednak nie pomoże, bo skoro "nie da się podzielić", to znaczy że z samą architekturą jest coś bardzo nie tak.
ale odróżniam Javę od Java Script :P

To dobrze, bo "skrypty Java" i pisownia "Java Script" mogłyby zasugerować coś innego. ;-)
Marcin Sołtysiuk

Marcin Sołtysiuk Web Developer, Roche

Temat: Dynamiczne ładowanie Java Script

Marek Stępień:
Agnieszka Kleczewska:
Dziękuję za odpowiedź. Podział danych niestety nie wchodzi przy przyjętym rozwiązaniu w grę.

No to zminimalizować co się da (YUI Compressor, ostatecznie JSMin), i skompresować przez mod_gzip lub coś w tym rodzaju. Wiele to jednak nie pomoże, bo skoro "nie da się podzielić", to znaczy że z samą architekturą jest coś bardzo nie tak.
ale odróżniam Javę od Java Script :P

To dobrze, bo "skrypty Java" i pisownia "Java Script" mogłyby zasugerować coś innego. ;-)

Dobrze gada powyżej i poprę te słowa 'polecam zatrudnić do tego profesjonalistę'.



Wyślij zaproszenie do