<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://mirmodynamics.com/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Mirmo Dynamics - Tag - jquery</title>
  <link>http://mirmodynamics.com/</link>
  <atom:link href="http://mirmodynamics.com/feed/tag/jquery/rss2" rel="self" type="application/rss+xml"/>
  <description>Si tu kiffes pas reunoi, t'écoutes pas et puis c'est tout.</description>
  <language>en</language>
  <pubDate>Sun, 14 Mar 2010 19:59:01 +0100</pubDate>
  <copyright>2003-2009 &amp;copy; Geoffrey Bachelet</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Ajax query failing unexpectedly ?</title>
    <link>http://mirmodynamics.com/post/2009/03/31/Ajax-query-failing-unexpectedly</link>
    <guid isPermaLink="false">urn:md5:4c0e02c551d601e2c8ce02bc4b6e1a52</guid>
    <pubDate>Tue, 31 Mar 2009 18:14:00 +0200</pubDate>
    <dc:creator>Geoffrey</dc:creator>
        <category>Geekeries</category>
        <category>adblock</category><category>ajax</category><category>exception</category><category>firebug</category><category>jquery</category>    
    <description>    &lt;p&gt;I was gently doing some ajax black voodoo when I came upon this obscure-ish error in my firebug console:&lt;/p&gt;

&lt;pre&gt;
Error: uncaught exception: [Exception... &amp;quot;Component returned failure code: 0x805e000a [nsIXMLHttpRequest.open]&amp;quot;  nsresult: 0x805e000a (&amp;lt;unknown&amp;gt;)&amp;quot;
&lt;/pre&gt;


&lt;p&gt;&lt;em&gt;What the fuck&lt;/em&gt; I though. And then after some (useless) firefox rebooting, I decided to ask the all-mighty Google.&lt;/p&gt;


&lt;p&gt;&lt;em&gt;No shit&lt;/em&gt;, he said, &lt;em&gt;I know what you are talking about, and thou shall find more informations at this place&lt;/em&gt;, and to point me to &lt;a href=&quot;http://groups.google.com/group/jquery-en/browse_thread/thread/44cd7c8352a11e4a&quot;&gt;this thread&lt;/a&gt;, where you can read the following:&lt;/p&gt;


&lt;p&gt;&lt;em&gt;AdBlock Plus was killing it HAH!&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;And then I disabled AdBlock Plus, and exactly as the writings told, it worked.&lt;/p&gt;</description>
    
    
    
          <comments>http://mirmodynamics.com/post/2009/03/31/Ajax-query-failing-unexpectedly#comment-form</comments>
      <wfw:comment>http://mirmodynamics.com/post/2009/03/31/Ajax-query-failing-unexpectedly#comment-form</wfw:comment>
      <wfw:commentRss>http://mirmodynamics.com/feed/atom/comments/1189</wfw:commentRss>
      </item>
    
  <item>
    <title>Éviter les appels de fonction en double en javascript</title>
    <link>http://mirmodynamics.com/post/2007/04/12/Eviter-les-appels-de-fonction-en-double-en-javascript</link>
    <guid isPermaLink="false">urn:md5:4ade4fc5c913f47948358bd4a9c7f804</guid>
    <pubDate>Thu, 12 Apr 2007 13:22:00 +0200</pubDate>
    <dc:creator>Geoffrey</dc:creator>
        <category>Coding</category>
        <category>javascript</category><category>jquery</category><category>library</category><category>rigolo</category>    
    <description>    &lt;p&gt;Dans un accès de désespoir vu l'activité débordante de ce blog en ce moment, je me lance et je vous propose cette petite librairie javascript qui va vous permettre d'éviter les appels de fonction en double:&lt;/p&gt;

&lt;pre&gt;
var Defer = {
	config: {
		defaultTimeout: 1000
	},
	stack: {},
	schedule: function(id, fn, timeout) {
		if (typeof(timeout) == 'undefined') {
			timeout = Defer.config.defaultTimeout;
		}
		if (typeof(Defer.stack[id]) == 'undefined') {
			Defer.stack[id] = {defer: false, fn: fn, timeout: timeout };
			window.setTimeout('Defer.execute(\'' + id + '\')', timeout);
		} else {
			Defer.stack[id].defer = true;
		}
	},
	execute: function(id) {
		if (typeof(Defer.stack[id]) != 'undefined' &amp;amp;&amp;amp; !Defer.stack[id].defer) {
			Defer.stack[id].fn();
			Defer.stack[id] = undefined;
		} else {
			Defer.stack[id].defer = false;
			window.setTimeout('Defer.execute(\'' + id + '\')', Defer.stack[id].timeout);
		}
	},
};
&lt;/pre&gt;


&lt;p&gt;On peut l'utiliser ainsi par exemple (&lt;a href=&quot;http://jquery.com/&quot;&gt;jquery&lt;/a&gt; requis):&lt;/p&gt;

&lt;pre&gt;
$(document).ready(function() {
	$('#nickname').keyup(function() {
		Defer.schedule('chknickname', function() {
			$.get('/account/check_nickname.php', { nickname: $('#nickname').val() }, function(data) {
				data = eval(data);
				$('#nickname_availability').html(data ? 'Pseudo disponible' : 'Pseudo indisponible');
			});
		}, 2000);
	});
});
&lt;/pre&gt;


&lt;p&gt;Concrétement, ce bout de code attache à un &lt;code&gt;input&lt;/code&gt; un événement qui ne sera executé que s'il n'est pas répété avant une certaine période (2 secondes ici). C'est à dire qu'on évite de faire une requête xmlhttp à chaque &lt;code&gt;keyup&lt;/code&gt;, on attend plutot que l'utilisateur arrête de taper un moment avant de balancer la sauce. A noter que de par la méthode utiliser, l'espace de nommage d'execution de la fonction change (par exemple ici, on ne peut pas utiliser &lt;code&gt;this&lt;/code&gt; pour accéder a l'&lt;code&gt;input&lt;/code&gt;).&lt;/p&gt;


&lt;p&gt;Voila voila.&lt;/p&gt;</description>
    
    
    
          <comments>http://mirmodynamics.com/post/2007/04/12/Eviter-les-appels-de-fonction-en-double-en-javascript#comment-form</comments>
      <wfw:comment>http://mirmodynamics.com/post/2007/04/12/Eviter-les-appels-de-fonction-en-double-en-javascript#comment-form</wfw:comment>
      <wfw:commentRss>http://mirmodynamics.com/feed/atom/comments/757</wfw:commentRss>
      </item>
    
</channel>
</rss>