<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Leitet om webb &#187; Javascript</title>
	<atom:link href="http://johan.leitet.se/index.php/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://johan.leitet.se</link>
	<description>Artiklar om webbutveckling och Webbprogrammerarprogrammet vid Linnéuniversitetet i Kalmar</description>
	<lastBuildDate>Thu, 06 May 2010 13:09:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>RIA-utveckling med Javascript &#8211; Steg 1</title>
		<link>http://johan.leitet.se/index.php/2010/01/26/ria-utveckling-med-javascript-steg-1/</link>
		<comments>http://johan.leitet.se/index.php/2010/01/26/ria-utveckling-med-javascript-steg-1/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 16:12:13 +0000</pubDate>
		<dc:creator>Johan Leitet</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://johan.leitet.se/?p=247</guid>
		<description><![CDATA[&#8221;RIA-utveckling med javascript&#8221; är namnet på en ny kurs som vi kör vid Linnéuniversitetet. Målet med kursen är att med fokus på processen, skapa en Javascriptdriven webbapplikation och inom ramen för kursen undersöka olika angreppssätt, verktyg och hjälpmedel för att på ett så effektivt sätt som möjligt komma framåt i arbetet. Mycket fokus i kursen [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-251" title="RIA-utveckling med Javascript" src="http://johan.leitet.se/wp-content/uploads/2010/01/RIA-sida-300x253.png" alt="RIA-utveckling med Javascript" width="300" height="253" />&#8221;RIA-utveckling med javascript&#8221; är namnet på en ny kurs som vi kör vid Linnéuniversitetet. Målet med kursen är att med fokus på processen, skapa en Javascriptdriven webbapplikation och inom ramen för kursen undersöka olika angreppssätt, verktyg och hjälpmedel för att på ett så effektivt sätt som möjligt komma framåt i arbetet. Mycket fokus i kursen ligger på arbetsmetoder och verktyg även om applikationen som sådan är ett givet mål.</p>
<p>Jag har själv inte skrivit några större rena Javascriptapplikationer och min tanke är att försöka följa kursen och dess steg i mån av tid. Även om jag är kursansvarig för kursen så är det David Waller som är den som tagit fram material och som sitter inne på stora kunskaper inom området. Mitt mål är jag personligen kan lyfta mina kunskaper inom området, någon som kommer att bära frukt i grundkurserna.</p>
<p>Kursen bygger på ett antal steg och till varje steg ska studenterna skriva relaterade blogginlägg som behandlar stegets innehåll. Jag hoppas att även jag kommer att kunna ta mig tid att skriva en bloggpost per steg. Steg 1 behandlar förarbete och resursinventering.</p>
<p><span id="more-247"></span></p>
<h2>Min relation till Javascript</h2>
<p>Jag har från och till sedan 2005 hållit kurser i Javascript, både serversidescriptande i gamla ASP, OS-skriptande i WHS men kanske främst kurser inom Javascript för webbläsarimplementationer. Jag har dock alltid känt att jag inte fått tillfälle att sätta tänderna djupt i språket för att förstår det från grunden. Tyvärr har undervisningen i många fall blivit lidande av den bitvis dåliga litteratur som funnits på området, och då främst litteratur från början av decenniet, och även min personliga kodstil har blivit delvis &#8221;förstörd&#8221; av litteraturen och dess i många fall rent felaktiga antaganden. Jag ser med tillförsikt fram emot att få en större förståelse för prototypbaserade språk och framför allt dess arvsmodell då man ibland känner sig bortsnurrad med en bakgrund från c och c++. Tid till källkritik har i många fall varit bristfällig och jag hoppas därför att inom ramen för denna kurs ha möjlighet att verkligen kunna gå på djupet och få en större förståelse för, det i många fall, missförstådda språket javascript.</p>
<p>Förutom att undervisa inom området har mina personliga äventyr och utforskningar av språket ofta begränsats till mindre implementationer och då ofta till funktionalitet som att till exempel validera formulärdata, minimering/maximering av element, asynkrona anrop till servern, bekräftelse rutor, modala popuper, lightboxar et cetera. Detta är ju ett vanligt användningsområde för javascript och också något de flesta webutvecklare är relativt bekväma med. Här jag haft fokus på att göra min applikationer så &#8221;<span id="result_box"><span style="background-color: #ffffff;" title="Unobtrusive">unobtrusive</span></span>&#8221; som möjligt, det vill säga separera innehåll (html) från presentation (css) och uppförande (javascript) samt skriva applikationer som fungerar oavsett webbläsare och som även fungerar utan att javascript är aktiverat.</p>
<p>Att skapa rena, större javascriptapplikationer är något som jag länge varit intresserad av, men aldrig tagit mig tid att göra och det ser jag som en intressant utmaning de kommande tio veckorna.</p>
<h2>I bokhyllan</h2>
<p><img class="alignright size-medium wp-image-248" title="Javascript böcker till kursen RIA-utveckling med javascript" src="http://johan.leitet.se/wp-content/uploads/2010/01/jsbooks-300x225.jpg" alt="Javascript böcker till kursen RIA-utveckling med javascript" width="300" height="225" /><br />
Inför kursen har jag beställt ett antal böcker som förhoppningsvis kommer att ta mig dit jag vill. Nytt i bokhyllan är:</p>
<ul>
<li>JavaScript, the Good Parts av Douglas Crockford</li>
<li>jQuery Cookbook av jQuery Community Experts</li>
<li>Even Faster Web Sites av Steve Sounders</li>
<li>Professional JavaScript for Web Developers 2nd edition av Nicholas C. Zakas</li>
</ul>
<p>och sedan tidigare finns även:</p>
<ul>
<li>Javascript The Definitive Guide av David Flanagan</li>
<li>Pro Javascript Design Patterns avRoss Harmes och Dustin Diaz</li>
<li>Pro Javascript Techniques av John Resig</li>
<li>med flera</li>
</ul>
<p>som säkerligen kan komma till användning. (jag vill även efterlysa min bok &#8221;ppk on Javascript&#8221; som jag tror att jag lånat ut till någon student). Dessutom har David gjort ett gediget arbete med att leta upp webbreferenser och föreläsningar som det ska bli ett nöje att ta del av. Jag hoppas även kunna gräva fram lite passande vetenskapliga artiklar inom området.</p>
<h2>Applikationen</h2>
<p>Under åtta års tid har jag sporadiskt arbetat på den utbildningsplattform som huvudsakligen används inom undervisningen vid våra IT-utbildningar och något som saknas på detta system är ett bra administrationsgränssnitt. Min tanke är därför att skapa en smidig och utbyggbart administrationsfunktion för detta system. Fördelen här är att jag kan kräva att lärare som administrerar sina kurser har JavaScript aktiverat, något som jag inte vill kräva på studentsidorna. Omfattningen kommer jag försöka hålla tillbaka då min tid kommer att vara begränsad på grund utav att jag har mycket undervisning denna period.</p>
]]></content:encoded>
			<wfw:commentRss>http://johan.leitet.se/index.php/2010/01/26/ria-utveckling-med-javascript-steg-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nya gadgets</title>
		<link>http://johan.leitet.se/index.php/2009/02/18/nya-gadgets/</link>
		<comments>http://johan.leitet.se/index.php/2009/02/18/nya-gadgets/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 14:08:18 +0000</pubDate>
		<dc:creator>Johan Leitet</dc:creator>
				<category><![CDATA[Allmänt]]></category>
		<category><![CDATA[Användbarhet]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://johan.leitet.se/?p=71</guid>
		<description><![CDATA[Som vissa kanske vet är jag alltid på jakt efter ny mediautrustning att ytterligare försköna mitt &#8221;mediaskåp&#8221; hemma med. Senaste inköpet var Comhems nya HD PVR men nu har jag fått upp ögonen för en än mer intressant produkt.
Vad tror ni om denna Sonygrunka? Verkar lovande&#8230;.

]]></description>
			<content:encoded><![CDATA[<p>Som vissa kanske vet är jag alltid på jakt efter ny mediautrustning att ytterligare försköna mitt &#8221;mediaskåp&#8221; hemma med. Senaste inköpet var Comhems nya HD PVR men nu har jag fått upp ögonen för en än mer intressant produkt.</p>
<p>Vad tror ni om denna Sonygrunka? Verkar lovande&#8230;.</p>
<p style="margin:auto"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="flashvars" value="file=http://www.theonion.com/content/xml/93143/video&amp;autostart=false&amp;image=http://www.theonion.com/content/files/images/SONY_FUCK_article3_0.jpg &amp;bufferlength=3&amp;embedded=true&amp;title=Sony%20Releases%20New%20Stupid%20Piece%20Of%20Shit%20That%20Doesn%27t%20Fucking%20Work" /><param name="src" value="http://www.theonion.com/content/themes/common/assets/videoplayer2/flvplayer.swf" /><param name="wmode" value="transparent" /><embed type="application/x-shockwave-flash" width="400" height="355" src="http://www.theonion.com/content/themes/common/assets/videoplayer2/flvplayer.swf" wmode="transparent" flashvars="file=http://www.theonion.com/content/xml/93143/video&amp;autostart=false&amp;image=http://www.theonion.com/content/files/images/SONY_FUCK_article3_0.jpg &amp;bufferlength=3&amp;embedded=true&amp;title=Sony%20Releases%20New%20Stupid%20Piece%20Of%20Shit%20That%20Doesn%27t%20Fucking%20Work"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://johan.leitet.se/index.php/2009/02/18/nya-gadgets/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Var ska scopet stå?</title>
		<link>http://johan.leitet.se/index.php/2008/04/09/var-ska-scopet-sta/</link>
		<comments>http://johan.leitet.se/index.php/2008/04/09/var-ska-scopet-sta/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 21:30:17 +0000</pubDate>
		<dc:creator>Johan Leitet</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://leitet.wippiesblog.com/2008/04/09/var-ska-scopet-sta/</guid>
		<description><![CDATA[För någon månad sedan hade jag en föreläsning om lite mer avancerad javascript där vi bland annat tittade på möjligheterna att använda privata, publika, statiska och priviligerade metoder och egenskaper i javascript. Vidare gick vi igenom hur viktigt det i javascript är att veta i vilken context vår kod exekverar, eller vilket objekt som har [...]]]></description>
			<content:encoded><![CDATA[<p>För någon månad sedan hade jag en föreläsning om lite mer avancerad javascript där vi bland annat tittade på möjligheterna att använda privata, publika, statiska och priviligerade metoder och egenskaper i javascript. Vidare gick vi igenom hur viktigt det i javascript är att veta i vilken context vår kod exekverar, eller vilket objekt som har scope.  Det är möjligt att jag utvecklar detta lite närmre i kommande artiklar men jag tänke nu förklara skillnaden (som faktiskt är ganska stor) på följande rader kod:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> myFunction<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #003366; font-weight: bold;">var</span> n <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
   <span style="color: #003366; font-weight: bold;">var</span> m <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>gentemot följande kod:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> myFunction<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #003366; font-weight: bold;">var</span> n <span style="color: #339933;">=</span> m <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>I många andra språk är ovanstående  helt synonyma men inte i javascript. Anledningen är skillnaden mellan att deklarera variabler med eller utan nyckelordet <code>var</code>.</p>
<p>Om vi  i en funktion deklarerar en variabel genom att skriva:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> myFunction<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #003366; font-weight: bold;">var</span> n <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>så kommer n att skapas inuti funktionen myFunction (som är ett objekt när den exekveras) . Detta innebär i praktiken att vi inte kan komma åt variabeln n utanför funktionen myFunction.</p>
<p>Deklarerar vi istället lite slarvigt vår variabel på följande sätt (vilket man inte ser allt för sällan):</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> myFunction<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   n <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>så kommer nu  variabeln n inte att skapas i vår funktion myFunction utan som en &#8221;global variabel&#8221;. Globala variabler i javascript innebär att de egentligen blir egenskaper på window-objektet. Vi kan nu alltså komma åt vår variabel n utanför vår funktion genom att skriva <code>window.n</code> alternativt enbart <code>n</code>.</p>
<p>Att på detta sätt lägga våra tänkta funktionsvariabler direkt på windowobjektet är inte snygg kodpraxis och något vi definitivt vill undvika. Problem kan annars lätt uppstå om flera funktioner använder samma variabelnamn.</p>
<p>Åter till problemet med att deklarera variabler som <code>var n = m = 0;</code>. När man gör på detta sätt så innebär det i praktiken att följande kod exekveras:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> myFunction<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   m <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
   <span style="color: #003366; font-weight: bold;">var</span> n <span style="color: #339933;">=</span> m<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Vi ser nu att n kommer att skapas på funktionen medan m skapas på window-objektet. Troligtvis var detta inte det som kodens skapare hade som intention.</p>
<p>Personligen så undviker jag rent allmänt att skapa flera variabler på samma rad, men jag har i några olika färdiga javascriptbibliotek sett detta angreppssätt, troligtvis för att minimera koden, men jag vill alltså varna för detta.</p>
<p>Hoppas att  du lärt dig något nytt i och med denna artikel och troligtvis så kanske artikeln gav dig andra funderingar. &#8221;Är funktioner objekt???&#8221; . Dessa är i så fall något jag får anledning att återkomma till.</p>
]]></content:encoded>
			<wfw:commentRss>http://johan.leitet.se/index.php/2008/04/09/var-ska-scopet-sta/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
