<?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>drailing.net &#187; JS / AJAX</title>
	<atom:link href="http://drailing.net/index.php/category/entwicklung/js-ajax/feed/" rel="self" type="application/rss+xml" />
	<link>http://drailing.net</link>
	<description>informatik, entwicklung, codeschnipsel und studium - von und mit dreiling</description>
	<lastBuildDate>Fri, 23 Dec 2011 13:48:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Zweiter Teaser und offene Anmeldung</title>
		<link>http://drailing.net/index.php/2011/11/zweiter-teaser-und-offene-anmeldung/</link>
		<comments>http://drailing.net/index.php/2011/11/zweiter-teaser-und-offene-anmeldung/#comments</comments>
		<pubDate>Wed, 16 Nov 2011 21:20:42 +0000</pubDate>
		<dc:creator>dreiling</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[JS / AJAX]]></category>

		<guid isPermaLink="false">http://drailing.net/?p=700</guid>
		<description><![CDATA[Wie vor kurzem erwähnt, arbeite ich in meiner Freizeit an einem kleinen Spiel in Form eines Greasemonkey Plugins, in dem man sich über die Webseiten bewegt, Geld sammelt und tolle Sachen bauen kann. Alle die mit dem kleinen Greasemonkey Plugin surfen, sehen sämtliche &#8220;Gebäude&#8221; der anderen Spieler und so wird das Web doch etwas lebendiger [...]]]></description>
			<content:encoded><![CDATA[<p>Wie vor kurzem erwähnt, arbeite ich in meiner Freizeit an einem kleinen Spiel in Form eines Greasemonkey Plugins, in dem man sich über die Webseiten bewegt, Geld sammelt und tolle Sachen bauen kann.<br />
Alle die mit dem kleinen Greasemonkey Plugin surfen, sehen sämtliche &#8220;Gebäude&#8221; der anderen Spieler und so wird das Web doch etwas lebendiger <img src='http://drailing.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Der zweite Teaser ist inzwischen mit Ton!<br />
<iframe width="560" height="315" src="http://www.youtube.com/embed/7VIfT5vs3G0" frameborder="0" allowfullscreen></iframe></p>
<p>Bisher gibts folgende Features:<br />
- ein &#8220;ich war hier&#8221; Schild auf dem einfach nur der Name steht<br />
- die Mine, läuft jemand drüber verliert man 10% des Geldes an den Minenleger<br />
- der Teleporter, bekommt beim Bauen eine URL. läuft man rein, wird man auf die entsprechende Seite &#8220;gebeamt&#8221;<br />
- die Kanone, braucht man um hier und da auch wieder was weg zu schießen.</p>
<p>Aktuell baue ich an einer Möglichkeit, Webseiten zu erobern die dann Steuern kosten (und evtl. etwas zu verfremden), bis das entsprechende Gebäude wieder zerstört ist.</p>
<p>Auch die Webseite zum Spiel braucht noch ein kleines bisschen Pflege. Optionale Emailangabe für Passwortreset und ein paar Statistiken sollen hier als nächstes folgen.</p>
<p>Da ich mich noch nicht zu einem Namen entscheiden konnte, gibts auch noch keine eigene Domain, aber hier kann man sich registrieren und spielen:</p>
<p>http://www.drailing.net/webgame/</p>
<p>Über Feedback, Anregungen, Bugs etc. freue ich mich natürlich!</p>
]]></content:encoded>
			<wfw:commentRss>http://drailing.net/index.php/2011/11/zweiter-teaser-und-offene-anmeldung/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Erster Teaser meines ersten Spiels ohne Namen</title>
		<link>http://drailing.net/index.php/2011/10/erster-teaser-meines-ersten-spiels-ohne-namen/</link>
		<comments>http://drailing.net/index.php/2011/10/erster-teaser-meines-ersten-spiels-ohne-namen/#comments</comments>
		<pubDate>Sat, 29 Oct 2011 18:32:41 +0000</pubDate>
		<dc:creator>dreiling</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[JS / AJAX]]></category>

		<guid isPermaLink="false">http://drailing.net/?p=695</guid>
		<description><![CDATA[An den letzten Blogposts kann man erkennen, dass ich mich immer mehr mit den Möglichkeiten von Javascript und Greasemonkey beschäftigt habe. Daraus ist nun ein kleines Spiel entstanden und zu dem Spiel ein kleiner Teaser: Der aktuelle Stand ist folgender: Man bewegt sich (mit den Pfeiltasten) über Webseiten und findet zufällig verteilte Geldsäcke. Mit diesem [...]]]></description>
			<content:encoded><![CDATA[<p>An den letzten Blogposts kann man erkennen, dass ich mich immer mehr mit den Möglichkeiten von Javascript und Greasemonkey beschäftigt habe. Daraus ist nun ein kleines Spiel entstanden und zu dem Spiel ein kleiner Teaser:</p>
<p><iframe width="560" height="315" src="http://www.youtube.com/embed/oK0hvXYnq6M" frameborder="0" allowfullscreen></iframe></p>
<p>Der aktuelle Stand ist folgender:<br />
Man bewegt sich (mit den Pfeiltasten) über Webseiten und findet zufällig verteilte Geldsäcke. Mit diesem Geld kann man nun verschiedenste Sachen bauen. Neben &#8220;ich war hier&#8221;-Schildern und Minen gibt es Teleporter, denen beim Erstellen eine URL hinterlegt wird. Läuft man nun durch einen Teleporter wird man auf die nächste Seite &#8220;gebeamt&#8221;.</p>
<p>Läuft jemand über eine Mine, werden 10% des Geldes an den Minenleger übertragen.</p>
<p>Natürlich sieht man auch die Gebäude die von anderen Spielern gebaut wurden und kann auch deren Teleporter benutzen. In ersten Tests konnte ich viele lustige Webseiten besuchen indem ich mich nur von Teleporter zu Teleporter bewegte. Sehr cool! <img src='http://drailing.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>PS: über Namensvorschläge und Feedback freue ich mich natürlich!</p>
]]></content:encoded>
			<wfw:commentRss>http://drailing.net/index.php/2011/10/erster-teaser-meines-ersten-spiels-ohne-namen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Erste Gehversuche mit Node</title>
		<link>http://drailing.net/index.php/2011/10/erste-gehversuche-mit-node/</link>
		<comments>http://drailing.net/index.php/2011/10/erste-gehversuche-mit-node/#comments</comments>
		<pubDate>Sun, 16 Oct 2011 19:47:59 +0000</pubDate>
		<dc:creator>dreiling</dc:creator>
				<category><![CDATA[JS / AJAX]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://drailing.net/?p=687</guid>
		<description><![CDATA[Nachdem ich schon vor längerem mit Websockets experimentiert hatte, diese aber nur in einer Beta von Chrome aktiv geschaltet sind, habe ich mich nun mit NodeJS und Socket.IO beschäftigt. NodeJS bietet die Möglichkeit Javascript serverseitig zu interpretieren und stellt eine komfortable API bereit um sehr rasch eigene Serversoftware zu schreiben. Socket.IO ist ein Node Plugin [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich schon vor längerem mit Websockets experimentiert hatte, diese aber nur in einer Beta von Chrome aktiv geschaltet sind, habe ich mich nun mit <a href="http://nodejs.org/" title="NodeJS">NodeJS</a> und <a href="http://socket.io/" title="Socket.IO">Socket.IO</a> beschäftigt.</p>
<p>NodeJS bietet die Möglichkeit Javascript serverseitig zu interpretieren und stellt eine komfortable API bereit um sehr rasch eigene Serversoftware zu schreiben.<br />
Socket.IO ist ein Node Plugin welches sich zur Aufgabe gemacht hat die Echtzeitkommunikation ins Web zu bringen. Dabei werden entweder auf Websockets, Flashplugins oder Javaapplets zurückgegriffen und ist somit auch auf nicht ganz aktuellen Browsern lauffähig.</p>
<p>Als erster Test habe ich ein Codebeispiel etwas umgebaut und es kam eine kleine Seite zustande, auf der man sich mit einem Namen anmeldet und dann per Click eine kleine blaue Box bewegen kann.<br />
Hört sich erstmal nicht nach einer postenswerten Errungenschaft an, surfen aber mehrere Besucher auf der Seite (oder alleine mit mehreren Browsern), erscheint pro Anmeldung eine blaue Box und jeder kann die Boxen und Bewegungen der Anderen in Echtzeit sehen!</p>
<p>Und <a href="http://win.drailing.net/nodeMove/move.html" title="Move">hier</a> gehts zur Seite!</p>
<p>Auf Wunsch kann ich den Code noch etwas kommentieren und zum Download anbieten, die Beispiele von Node selbst sind aber recht selbsterklärend und auch entsprechend gut kommentiert <img src='http://drailing.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Tip:<br />
Da npm (Node Package Manager) unter Windows nicht zur verfügung steht und das Einrichten unter Windows mit allen Plugins bei mir nicht ganz geklappt hat, empfehle ich das Projekt <a href="http://code.google.com/p/nodejs-win/" title="nodejs-win">nodejs-win</a>, ein Installer für NodeJS der alle notwendigen Plugins mitbringt, PATH Variable setzt etc&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://drailing.net/index.php/2011/10/erste-gehversuche-mit-node/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>z0r Randomizer (Greasemonkey Plugin)</title>
		<link>http://drailing.net/index.php/2011/07/z0r-randomizer-greasemonkey-plugin/</link>
		<comments>http://drailing.net/index.php/2011/07/z0r-randomizer-greasemonkey-plugin/#comments</comments>
		<pubDate>Sun, 03 Jul 2011 19:07:25 +0000</pubDate>
		<dc:creator>dreiling</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[JS / AJAX]]></category>

		<guid isPermaLink="false">http://drailing.net/?p=682</guid>
		<description><![CDATA[Vor einiger Zeit hatte ich angefangen mich mit Greasemonkey zu beschäftigen, da ich die Idee, Websites Clientseitig seinen eigenen Bedürfnissen anzupassen sehr interessant finde. Seit der Version 0.8.0 unterstützt Greasemonkey nun ein @require Attribut, welches erlaubt externe Bibliotheken wie jQuery einzubinden und zu benutzen. Das ist toll! Und als erstes, unverzichtbares Plugin gibts hier den [...]]]></description>
			<content:encoded><![CDATA[<p>Vor einiger Zeit hatte ich angefangen mich mit Greasemonkey zu beschäftigen, da ich die Idee, Websites Clientseitig seinen eigenen Bedürfnissen anzupassen sehr interessant finde.</p>
<p>Seit der Version 0.8.0 unterstützt Greasemonkey nun ein @require Attribut, welches erlaubt externe Bibliotheken wie jQuery einzubinden und zu benutzen. Das ist toll!</p>
<p>Und als erstes, unverzichtbares Plugin gibts hier den z0r Randomizer, welcher auf der <a href="http://z0r.de/">zugehörigen Internetseite</a> alle 10 Sekunden den Random-Button drückt. Wunderbar auf jeder Party oder einfach als Bildschirmschoner, einfach ein MUSS! (im Grunde ist z0r nur eine Ansammlung doch sehr unnötiger aber lustiger Flash Videos, wie z.B. <a href="http://z0r.de/2757">das</a>)</p>
<p>Das Script gibts hier:<br />
<a href="http://www.drailing.net/dev/z0r.user.js">click</a></p>
<p>Und wer Greasemonkey noch nicht installiert hat, wird hier fündig:<br />
<a href="https://addons.mozilla.org/de/firefox/addon/greasemonkey/">click</a></p>
<p>Zur Installation, ganz einfach den Link zum Script bei aktiviertem Greasemonkey anklicken.</p>
<p>Falls man nun ein Video doch tatsächlich länger als 10 Sekunden sehen möchte, ist im z0r Menü ein zusätzlicher Eintrag dazugekommen, über welchen man jederzeit den Timer an/ausschalten kann.</p>
<p>Viel Spaß!</p>
]]></content:encoded>
			<wfw:commentRss>http://drailing.net/index.php/2011/07/z0r-randomizer-greasemonkey-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>blueimp AjaxChat Onlineliste</title>
		<link>http://drailing.net/index.php/2011/05/blueimp-ajaxchat-onlineliste/</link>
		<comments>http://drailing.net/index.php/2011/05/blueimp-ajaxchat-onlineliste/#comments</comments>
		<pubDate>Mon, 09 May 2011 23:14:18 +0000</pubDate>
		<dc:creator>dreiling</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[JS / AJAX]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://drailing.net/?p=669</guid>
		<description><![CDATA[Auf Anregung von Sumale.nin habe ich hier ein Miniscript geschrieben, womit man die aktuell angemeldeten Chatter sehen und per Ajax-Request in ein Div laden kann. Grundsätzlich wurde das ganze dann doch sehr simpel Benötigt wird jQuery und mein kleines Javascript: &#60;script src=&#34;http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js&#34; type=&#34;text/javascript&#34;&#62;&#60;/script&#62; &#60;script src=&#34;onlineuser.js&#34; type=&#34;text/javascript&#34;&#62;&#60;/script&#62; Diese beiden Scripte müssen auf jedenfall im entsprechenden HTML [...]]]></description>
			<content:encoded><![CDATA[<p>Auf Anregung von <a href="http://germannaruto.de/">Sumale.nin</a> habe ich hier ein Miniscript geschrieben, womit man die aktuell angemeldeten Chatter sehen und per Ajax-Request in ein Div laden kann.</p>
<p>Grundsätzlich wurde das ganze dann doch sehr simpel <img src='http://drailing.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Benötigt wird jQuery und mein kleines Javascript:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;onlineuser.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</pre></div></div>

<p>Diese beiden Scripte müssen auf jedenfall im entsprechenden HTML Header vorhanden sein.</p>
<p>Vor dem hochladen, kann in der onlineuser.js noch die UpdateRate und die ID des Divs konfiguriert werden. Per default heisst die  Div-ID &#8220;onlineuser&#8221; und wird alle 10 Sekunden aktualisiert:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> targetDiv <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;onlineuser&quot;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> updateRate <span style="color: #339933;">=</span> <span style="color: #CC0000;">10000</span><span style="color: #339933;">;</span></pre></div></div>

<p>Falls nun das PHP Script nicht auf einer Ebene mit der HTML Datei liegt, muss der Pfad noch entsprechend angepasst werden:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#&quot;</span><span style="color: #339933;">+</span>targetDiv<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">load</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;path/to/onlineuser.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>In der onlineuser.php muss, wie auch schon beim Adminpanel, die Datenbankverbindung eingertagen werden und optional noch CSS Klassen mitgegeben werden:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$cssClass</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;styleMe orNot&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$db</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> mysqli<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'localhost'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'db-user-name'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'db-pw'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'db-name'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Grundsätzlich wars das schon! </p>
<p>Ein ZIP mit den beiden benötigten Dateien und einem Beispiel-HTML findet man <a href='http://drailing.net/wp-content/uploads/2011/05/ajaxchat_onlineuser.zip'>hier</a></p>
<p>Ich hoffe es funktioniert bei allen, im Notfall kann man sich aber gerne hier melden <img src='http://drailing.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://drailing.net/index.php/2011/05/blueimp-ajaxchat-onlineliste/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Twitterwall</title>
		<link>http://drailing.net/index.php/2011/04/twitterwall/</link>
		<comments>http://drailing.net/index.php/2011/04/twitterwall/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 22:07:57 +0000</pubDate>
		<dc:creator>dreiling</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[JS / AJAX]]></category>

		<guid isPermaLink="false">http://drailing.net/?p=657</guid>
		<description><![CDATA[Da habe ich endlich mal wieder was gebaut, über was es sich auch lohnt zu schreiben: eine Twitterwall. Auch wenn ich selber kein aktiver Twitternutzer bin, musste ich mir die API aus verschiedenen Gründen etwas genauer anschauen. Am Ende fiel eine komplett Javascript basierte Twitterwall raus Bei Click auf den Titel (beim Start &#8220;japan&#8221;) wird [...]]]></description>
			<content:encoded><![CDATA[<p>Da habe ich endlich mal wieder was gebaut, über was es sich auch lohnt zu schreiben: eine Twitterwall.</p>
<p>Auch wenn ich selber kein aktiver Twitternutzer bin, musste ich mir die API aus verschiedenen Gründen etwas genauer anschauen. Am Ende fiel eine komplett Javascript basierte Twitterwall raus <img src='http://drailing.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Bei Click auf den Titel (beim Start &#8220;japan&#8221;) wird das minimalistische Menü eingeblendet, über das auch nach Hashtags oder User gefiltert werden kann. Abgeschickt bzw. geschlossen, wird das Menü über Enter.</p>
<p>Eine Live-Demo gibts hier: <a href="http://drailing.net/getwitter/">getwitter</a></p>
<p>Und wer sich den Code genauer anschauen möchte, oder auch den eigenen Bedürfnissen anpassen will, kann sich hier gerne den Code downloaden: <a href='http://drailing.net/wp-content/uploads/2011/04/getwitter.zip'>download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://drailing.net/index.php/2011/04/twitterwall/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Rails3 und jQuery Implementierung</title>
		<link>http://drailing.net/index.php/2010/10/rails3-und-jquery-implementierung/</link>
		<comments>http://drailing.net/index.php/2010/10/rails3-und-jquery-implementierung/#comments</comments>
		<pubDate>Mon, 18 Oct 2010 12:37:40 +0000</pubDate>
		<dc:creator>dreiling</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[JS / AJAX]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.drailing.net/?p=595</guid>
		<description><![CDATA[Hiho, da ich die letzten Tage unsere Bachelorprojekts auf die serverseitige Programmierung umgestiegen bin, hatte ich auch mit ein paar Neuheiten von Rails3 zu tun. Da ich mir selbst nen Wolf gegoogelt hab und vieles nicht finden konnte, schreibe ich hier einfach mal die kleinen Stolpersteine zusammen: 1. jQuery mit Rails installieren dazu gibts inzwischen [...]]]></description>
			<content:encoded><![CDATA[<p>Hiho,</p>
<p>da ich die letzten Tage unsere Bachelorprojekts auf die serverseitige Programmierung umgestiegen bin, hatte ich auch mit ein paar Neuheiten von Rails3 zu tun.</p>
<p>Da ich mir selbst nen Wolf gegoogelt hab und vieles nicht finden konnte, schreibe ich hier einfach mal die kleinen Stolpersteine zusammen:</p>
<p>1. jQuery mit Rails installieren<br />
dazu gibts inzwischen schon reichliche Tutorials. In Kurz: von <a href="http://github.com/rails/jquery-ujs">github</a> die rails.js runterladen und includen.<br />
Das Problem dabei war, dass Prototype (die JS Library die Rails normalerweise benutzt) und jQuery das Dollarzeichen als Selector benutzen. Das heisst einfach nur includen zerstört die restlichen Javascript calls von Rails &#8211; weiterlesen hätte geholfen, denn auf github wird die Installation gut erklärt.</p>
<p>2. respond_to mit jQuery AJAX<br />
da Prototype von Haus aus dabei ist, hätte die Implementierung in einem AJAX Update wohl so ausgesehen</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">respond_to <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>format<span style="color:#006600; font-weight:bold;">|</span>
  <span style="color:#CC0066; font-weight:bold;">format</span>.<span style="color:#9900CC;">js</span> <span style="color:#006600; font-weight:bold;">&#123;</span>
    render <span style="color:#ff3333; font-weight:bold;">:update</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>page<span style="color:#006600; font-weight:bold;">|</span>
      page.<span style="color:#9900CC;">replace_html</span> <span style="color:#ff3333; font-weight:bold;">:divId</span>, <span style="color:#ff3333; font-weight:bold;">:partial</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;partialName&quot;</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
  <span style="color:#006600; font-weight:bold;">&#125;</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>die Methoden wie replace_html gibt es nun in der Form in jQuery nicht mehr.<br />
Der Javascript Generator bietet uns allerdings eine andere schöne Form um nun jQuery funktionen aufzurufen. Das äquivalent zum obigen Code sieht dann so aus (in 2 Schritten da die jQuery Methode replaceWith() nicht funktioniert hatte)</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">render <span style="color:#ff3333; font-weight:bold;">:update</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>page<span style="color:#006600; font-weight:bold;">|</span>
  page<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">&quot;#divId&quot;</span><span style="color:#006600; font-weight:bold;">&#93;</span>.<span style="color:#9900CC;">empty</span>
  page<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">&quot;#divId&quot;</span><span style="color:#006600; font-weight:bold;">&#93;</span>.<span style="color:#9900CC;">append</span> render<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:partial</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;partialName&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>3. Ein Partial aus verschiedenen Controllern aus updaten<br />
Die <a href="http://api.rubyonrails.org/classes/ActionView/Partials.html">Rails Doku</a> liefert uns unter dem Punkt &#8220;shared Partials&#8221; schon einen guten Ansatz. Zur Vollständigkeit hier das Codebeispiel von Oben erweitert</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">render <span style="color:#ff3333; font-weight:bold;">:update</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>page<span style="color:#006600; font-weight:bold;">|</span>
  page<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">&quot;#divId&quot;</span><span style="color:#006600; font-weight:bold;">&#93;</span>.<span style="color:#9900CC;">empty</span>
  page<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">&quot;#divId&quot;</span><span style="color:#006600; font-weight:bold;">&#93;</span>.<span style="color:#9900CC;">append</span> render<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:partial</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;controllerName/partialName&quot;</span>, <span style="color:#ff3333; font-weight:bold;">:locals</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006600; font-weight:bold;">&#123;</span>:objectName <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0066ff; font-weight:bold;">@context</span>.<span style="color:#9900CC;">objectName</span> <span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>4. jQuery UI Icons in den Links<br />
nach vielen Versuchen die CSS Wrapper drumherum zu bauen, hat einfach das zufügen der jQuery Klassen selber gereicht. Ein &#8220;Delete&#8221; als Mülleimer würde dann entsprechend so aussehen:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#006600; font-weight:bold;">&lt;%</span>= link_to <span style="color:#996600;">'Destroy'</span>, restfull_route_path<span style="color:#006600; font-weight:bold;">&#40;</span>object_to_destroy<span style="color:#006600; font-weight:bold;">&#41;</span>, <span style="color:#ff3333; font-weight:bold;">:confirm</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'Are you sure?'</span>, <span style="color:#ff3333; font-weight:bold;">:method</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#ff3333; font-weight:bold;">:delete</span>, :<span style="color:#9966CC; font-weight:bold;">class</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'ui-state-default ui-corner-all ui-icon ui-icon-trash'</span>, <span style="color:#ff3333; font-weight:bold;">:title</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;Delete&quot;</span> <span style="color:#006600; font-weight:bold;">%&gt;</span></pre></div></div>

<p>Ich hoffe dem Ein oder Anderen kanns etwas Zeit sparen <img src='http://drailing.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://drailing.net/index.php/2010/10/rails3-und-jquery-implementierung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Probleme und Lösungen mit JS/jQuery</title>
		<link>http://drailing.net/index.php/2010/07/probleme-und-losungen-mit-jquery/</link>
		<comments>http://drailing.net/index.php/2010/07/probleme-und-losungen-mit-jquery/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 10:38:40 +0000</pubDate>
		<dc:creator>dreiling</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[JS / AJAX]]></category>

		<guid isPermaLink="false">http://www.drailing.net/?p=561</guid>
		<description><![CDATA[Nachdem ich mich die letzte Woche mit jQuery etwas beschäftigt habe, möchte ich hier einmal kurz die aufgetretenen Probleme und die damit verbundenen Lösungen festhalten: Parallele Abläufe Da es in Javascript und somit auch in jQuery keine Threads gibt und eine endlose while Schleife keine Parallelität bietet (und ausserdem den Browser abstürzen lässt) muss ein [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich mich die letzte Woche mit jQuery etwas beschäftigt habe, möchte ich hier einmal kurz die aufgetretenen Probleme und die damit verbundenen Lösungen festhalten:</p>
<p><strong>Parallele Abläufe</strong><br />
Da es in Javascript und somit auch in jQuery keine Threads gibt und eine endlose while Schleife keine Parallelität bietet (und ausserdem den Browser abstürzen lässt) muss ein anderes Konstrukt herhalten. Die Lösung hier lautet Rekursion (schön erklärt von <a href="http://javathreads.de/2010/04/begriffe-endlosschleife-und-rekursion-anschaulich-durch-buch-glossar-erklaert/">Markus Kühle auf Javathreads</a>).</p>
<p><strong>setTimeout mit Parametern</strong><br />
Auf anhieb findet man für die Rekursion viele Beispiele mit der setTimeout Methode, leider aber immer ohne Parameterübergabe (in meinem Beispiel der CountUp):</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">setTimeout<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;countUp()&quot;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Sobald nun countUp() mit einem Parameter übergeben werden soll, funktioniert dieser Aufruf nicht mehr. Die Lösung war, den ersten Parameter der setTimeout Methode durch eine Funktion zu ersetzen:</p>

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

<p><strong>Countup und die Zeit</strong><br />
Ich hatte eigentlich erwartet dass mich Google mit kleinen Codeschnipseln überhäuft wenn es um einen Simplen Countup für Zeit geht. Gefunden habe ich ein paar wenige, die aber so unschön anzuschauen waren, dass ich mir kurzerhand was kleines Simples selbst zusammengeschrieben habe:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">//Parameter inzwischen global um einfach und dynamisch zur Laufzeit zu ändern</span>
<span style="color: #003366; font-weight: bold;">var</span> year<span style="color: #339933;">,</span> month<span style="color: #339933;">,</span> day<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> countUp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #006600; font-style: italic;">//month-1 da die Monate von 0-11 codiert sind</span>
	<span style="color: #003366; font-weight: bold;">var</span> startDate <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span>year<span style="color: #339933;">,</span> month<span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span> day<span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> currentDate <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> diff <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span>currentDate.<span style="color: #660066;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> startDate.<span style="color: #660066;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #006600; font-style: italic;">//(diff.getYear()-70) da der Zeitliche Nullpunkt bei 1970 liegt, und wir nur die Anzahl der Jahre benötigen</span>
	<span style="color: #003366; font-weight: bold;">var</span> diffString <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;Years &quot;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>diff.<span style="color: #660066;">getYear</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #CC0000;">70</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; Months &quot;</span> <span style="color: #339933;">+</span> diff.<span style="color: #660066;">getMonth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; Days &quot;</span> <span style="color: #339933;">+</span> diff.<span style="color: #660066;">getDate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> 
		<span style="color: #3366CC;">&quot; Hours &quot;</span> <span style="color: #339933;">+</span> diff.<span style="color: #660066;">getHours</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; Minutes &quot;</span> <span style="color: #339933;">+</span> diff.<span style="color: #660066;">getMinutes</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; Seconds &quot;</span> <span style="color: #339933;">+</span> diff.<span style="color: #660066;">getSeconds</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #006600; font-style: italic;">//String schreiben</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#countUpDiv'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span>diffString<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #006600; font-style: italic;">//rekursiver Aufruf</span>
	setTimeout<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		countUp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><strong>noch ein Tip zum Schluss</strong><br />
Um die komplette jQuery Doku auch offline (solls ja ab und zu geben&#8230;) nutzen zu können, gibts diese auch als PDF oder sogar als Windows Help File zum Download.<br />
<a href="http://docs.jquery.com/Alternative_Resources">Link</a></p>
]]></content:encoded>
			<wfw:commentRss>http://drailing.net/index.php/2010/07/probleme-und-losungen-mit-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nichtraucher mit jQuery</title>
		<link>http://drailing.net/index.php/2010/07/nichtraucher-mit-jquery/</link>
		<comments>http://drailing.net/index.php/2010/07/nichtraucher-mit-jquery/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 14:00:49 +0000</pubDate>
		<dc:creator>dreiling</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[JS / AJAX]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.drailing.net/?p=551</guid>
		<description><![CDATA[Nachdem ich seit inzwischen 3 Wochen dem Laster des Rauchens trotze und in meiner freien Zeit vor Praxisphase und Bachelorarbeit noch etwas sinnvolles machen wollte, habe ich mich etwas mit dem Javascript/AJAX Framework jQuery beschäftigt. Beides kombiniert, kommt bei mir eine kleine Nichtraucher&#8221;Uhr&#8221; raus: Zur Zeit wird das Datum der letzten Zigarette (, durchschnittliches Gerauche [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich seit inzwischen 3 Wochen dem Laster des Rauchens trotze und in meiner freien Zeit vor Praxisphase und Bachelorarbeit noch etwas sinnvolles machen wollte, habe ich mich etwas mit dem Javascript/AJAX Framework jQuery beschäftigt. Beides kombiniert, kommt bei mir eine kleine Nichtraucher&#8221;Uhr&#8221; raus:</p>
<p>Zur Zeit wird das Datum der letzten Zigarette (, durchschnittliches Gerauche und Preis einer Schachtel erfasst und daraus die Zeit als Nichtraucher und das dabei gesparte Geld errechnet.</p>
<p><a href="http://smoking.drailing.net/"><img src="http://www.drailing.net/wp-content/uploads/2010/07/NonSmoking_1279806743864.png" alt="" title="NonSmoking_1279806743864" width="600" height="250" class="aligncenter size-full wp-image-553" /></a></p>
<p>In Zukunft wird die Toplist noch um das gesparte Geld erweitert, eine kleine API gebastelt die die &#8220;Uhr&#8221; ausgeben kann (ohne angemeldet zu sein) und bei ganz viel Laune wird noch das Standarddesign ersetzt.</p>
<p>Wer sich nicht registrieren will, kann sich mit test/test auch das innenleben mal amschauen.</p>
<p>Eine schöne Sache dieses jQuery <img src='http://drailing.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://drailing.net/index.php/2010/07/nichtraucher-mit-jquery/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

