Terrasque Skrevet 31. januar 2010 Del Skrevet 31. januar 2010 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
siDDis Skrevet 1. februar 2010 Del Skrevet 1. februar 2010 (endret) 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 1. februar 2010 av siDDIs Lenke til kommentar
Terrasque Skrevet 1. februar 2010 Forfatter Del Skrevet 1. februar 2010 JavaScript har namespaces? Jøsses.. Ble ikke så veldig klok på den eksempel koden, tho... man lager en anonym funksjon, som så fungerer som et namespace? Ser mer på det i morgen når jeg er litt mer våken. Takker for tilbakemeldingen! Lenke til kommentar
Haraldson Skrevet 1. februar 2010 Del Skrevet 1. februar 2010 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
Terrasque Skrevet 2. februar 2010 Forfatter Del Skrevet 2. februar 2010 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
siDDis Skrevet 3. februar 2010 Del Skrevet 3. februar 2010 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
Terrasque Skrevet 3. februar 2010 Forfatter Del Skrevet 3. februar 2010 Jege spørte ikke om namespaces generelt, jeg spørte om et par spesifikke ting jeg lurte på med JS namespaces. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå