Kom ihåg mig?

Asynchronous Script Loading

Ämnesverktyg Visningsalternativ
Oläst 2015-09-19, 12:12 #1
SweLogan SweLogan är inte uppkopplad
Medlem
 
Reg.datum: Sep 2007
Inlägg: 148
SweLogan SweLogan är inte uppkopplad
Medlem
 
Reg.datum: Sep 2007
Inlägg: 148
Standard Asynchronous Script Loading

Har googlat runt en del nu på "Asynchronous Script Loading" har hittat en del men inte redigt vilket som är "best practice" just nu.

Sen en annan sak jag inte hittat eller vet vad det kallas är javascriptet man laddar in. Hur skriver man en init function i den så de kan skicka variablar mellan varandra och styra DOM object.

Det jag vill åstakomma är att den ska ladda in ett bildgalleri i ett DOM object från ett visst ID i databasen.

Exempel

<script>
window.fbAsyncInit = function() {
FB.init({
appId : '760091084023362',
xfbml : true,
version : 'v2.4'
});
};

(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
SweLogan är inte uppkopplad   Svara med citatSvara med citat
Oläst 2015-09-19, 17:16 #2
Nerix Nerix är inte uppkopplad
Flitig postare
 
Reg.datum: Oct 2010
Inlägg: 398
Nerix Nerix är inte uppkopplad
Flitig postare
 
Reg.datum: Oct 2010
Inlägg: 398
head.js har funnits ett tag å anses vara stabil.
Nerix är inte uppkopplad   Svara med citatSvara med citat
Oläst 2015-09-20, 00:49 #3
x264 x264 är inte uppkopplad
Flitig postare
 
Reg.datum: Dec 2013
Inlägg: 342
x264 x264 är inte uppkopplad
Flitig postare
 
Reg.datum: Dec 2013
Inlägg: 342
Rätt stor fil för att göra något så simpelt... typ såhär:

Kod:
function loadJS(src, callback) {
	var scriptFile = document.createElement("script");
	scriptFile.type = "text/javascript";
	scriptFile.src = src;
	scriptFile.onload = scriptFile.onreadystatechange = function() {
		if ((!this.readyState ||
			this.readyState === "loaded" || 
                        this.readyState === "complete")) {
			// Hanterar minnesläcka i IE
			scriptFile.onload = scriptFile.onreadystatechange = null;
			callback();
		}
	};
	document.getElementsByTagName("head")[0].appendChild(scriptFile);
};
Sedan kan du bara göra

Kod:
loadJS("gallery.js", function() {
   // filen har laddats
});
Och så går det att slänga in en som hanterar error, hur du vill göra det om du föredrar

Kod:
loadJS("gallery.js", function() {

}, errorCallback);
eller om du vill ha

Kod:
loadJS("gallery.js", function(err) {

});
Är ju upp till dig.

Men callbacken i elementet är iaf onerror, så då kan du ju lägga till det.
x264 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2015-09-20, 01:20 #4
Nerix Nerix är inte uppkopplad
Flitig postare
 
Reg.datum: Oct 2010
Inlägg: 398
Nerix Nerix är inte uppkopplad
Flitig postare
 
Reg.datum: Oct 2010
Inlägg: 398
Citat:
Ursprungligen postat av x264 Visa inlägg
Rätt stor fil för att göra något så simpelt... typ såhär:

Kod:
function loadJS(src, callback) {
	var scriptFile = document.createElement("script");
	scriptFile.type = "text/javascript";
	scriptFile.src = src;
	scriptFile.onload = scriptFile.onreadystatechange = function() {
		if ((!this.readyState ||
			this.readyState === "loaded" || 
                        this.readyState === "complete")) {
			// Hanterar minnesläcka i IE
			scriptFile.onload = scriptFile.onreadystatechange = null;
			callback();
		}
	};
	document.getElementsByTagName("head")[0].appendChild(scriptFile);
};
Sedan kan du bara göra

Kod:
loadJS("gallery.js", function() {
   // filen har laddats
});
Och så går det att slänga in en som hanterar error, hur du vill göra det om du föredrar

Kod:
loadJS("gallery.js", function() {

}, errorCallback);
eller om du vill ha

Kod:
loadJS("gallery.js", function(err) {

});
Är ju upp till dig.

Men callbacken i elementet är iaf onerror, så då kan du ju lägga till det.
Återkom när du testkört koden i alla webbläsare och fixat till alla buggar.
Nerix är inte uppkopplad   Svara med citatSvara med citat
Oläst 2015-09-20, 01:22 #5
x264 x264 är inte uppkopplad
Flitig postare
 
Reg.datum: Dec 2013
Inlägg: 342
x264 x264 är inte uppkopplad
Flitig postare
 
Reg.datum: Dec 2013
Inlägg: 342
Citat:
Ursprungligen postat av Nerix Visa inlägg
Återkom när du testkört koden i alla webbläsare och fixat till alla buggar.
Testkört i IE10 -> IE 5, Firefox, Opera och Chrome.

Fungerar utmärkt i alla.

Upplever du någon bugg?
x264 är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 17:31.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017