Gå til innhold

Javascript basert bildeviser


Anbefalte innlegg

Jeg har laget en JS basert bildeviser som forhåndslaster neste bilde.

 

Url med info : http://vps.thelazy.net/ib/

Demo : http://vps.thelazy.net/ib/Erfworld%201/

 

Mitt første "store" JS prosjekt, så tar gjerne imot ideer til forbedringer / forenklinger av koden. Kan også hende at koden der vil være til hjelp for noen.

 

Målet er å holde den enkel og liten, så er i utgangspunktet ikke interessert i store endringer av funksjonalitet, men små forbedringer av det som allerede er der (gjerne litt CSS så det ser litt bedre ut).

Lenke til kommentar
Videoannonse
Annonse
Jeg har laget en JS basert bildeviser som forhåndslaster neste bilde.

 

Url med info : http://vps.thelazy.net/ib/

Demo : http://vps.thelazy.net/ib/Erfworld%201/

 

Mitt første "store" JS prosjekt, så tar gjerne imot ideer til forbedringer / forenklinger av koden. Kan også hende at koden der vil være til hjelp for noen.

 

Målet er å holde den enkel og liten, så er i utgangspunktet ikke interessert i store endringer av funksjonalitet, men små forbedringer av det som allerede er der (gjerne litt CSS så det ser litt bedre ut).

 

Hei,

 

Det ser ganske bra ut, funksjonalitetmessig så er det supert. Men når eg ser i koden så er alt globalt. Du burde kanskje lære deg namespaces, då er det mykje enklare å forhalde seg til eit scope sånn at din applikasjon kan brukes saman med andre applikasjoner på ein nettstad. Deklarering av private og public varibaler og funksjoner kan også være ein god ide :)

 

Kort eksempel på bruk av namespaces, private og public variabler of funksjoner.

 

http://pastie.org/804257

 

Då trenger du f.eks bare å skrive alert(Response.Utilities.clientBrowserIsInternetExplorer());

Ein kan også innanfor eit scope sei at var util = Response.Utilities; også bruke util.clientBrowserIsInternetExplorer();

Endret av siDDIs
Lenke til kommentar

Er selv fan av å prototype en funksjon og sende inn argumenter fra en initialisering;

 

var MyScript = function(args)
{
this.init(args);
}


MyScript.prototype = {
init: function(args)
{
	var self = this;

	this.method(args);
},

method: function(args)
{
	// Etc...
}
});

$(function()
{
// jQuery load i eksempelet
var script = new MyScript(
{
	// Selektorer og andre innstillinger
});
});

 

Slik føler jeg at jeg har oversikt i alle fall, og det gir vel samtidig det hele et slags namespace.

Lenke til kommentar

Hmm.. Har sett litt rundtom.. Og funnet et par måter...

 

http://stackoverflow.com/questions/881515/...ace-declaration - dict og construct

 

http://www.lixo.org/archives/2007/09/14/ja...in-a-namespace/ - object og function

 

http://www.dustindiaz.com/namespace-your-javascript/ - function

 

Og Haraldson's prototype...

 

 

Men ingen går noe særlig inn på detaljer og pro / cons på de forskjellige. Foreløpig ser function måten ut til å være den mest lovende.

 

Men et par spørsmål :

 

Hvordan fungerer semi-globale variabler / namespace? Et eksempel ifra scriptet mitt er aktiv side, som de fleste funksjonene trenger å kunne lese / endre.

 

Hvordan fungerer flere nestinger under hverandre? Eksempel : Bla.prefetch.next_image() - Bla.viewer.next_image() (litt contrived, men hvis man tenker prefetch henter i cache, og viewer oppdater synlig bilde) - Får begge to tak i variablen activeImage? (og hvor skal jeg såfall plassere / adresse den?)

Lenke til kommentar

Fordelen med namespaces er jo ganske sjølv forklarandes, at applikasjoner skal kunne fungere i sitt eige scope. Det er derfor jQuery fungerer med Prototype, fordi jQuery kan kjøres i eit anna scope.

 

Det er fort gjort at det finnes to funksjoner som heiter setImage() eller setName()

 

Om du ser på koden min så fungerer ting der litt forskjelligt.

 

F.eks så er Response.Utilities.clientBrowserIsInternetExplorer() ein statisk funksjon til det statiske objektet Utilities. Response.Collections.Dictionary() er eit ikkje statisk objekt så for å bruke det må du skrive.

 

var map = new Response.Collections.Dictionary();

Så når du har ein verdi som fleire funksjoner skal nå så kan du lage eit statisk objekt med ein statisk metode.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...