<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Crouching Javascript, Hidden PHP [2]</title>
	<atom:link href="http://www.sitepoint.com/blogs/2004/08/31/crouching-javascript-hidden-php-2/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sitepoint.com/blogs/2004/08/31/crouching-javascript-hidden-php-2/</link>
	<description>News, opinion, and fresh thinking for web developers and designers. The official podcast of sitepoint.com.</description>
	<lastBuildDate>Mon, 23 Nov 2009 09:18:42 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Anonymous</title>
		<link>http://www.sitepoint.com/blogs/2004/08/31/crouching-javascript-hidden-php-2/comment-page-1/#comment-30975</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Mon, 19 Jun 2006 04:24:30 +0000</pubDate>
		<guid isPermaLink="false">999653599#comment-30975</guid>
		<description>&lt;strong&gt;&lt;em&gt;&lt;code&gt;&lt;/code&gt;&lt;/em&gt;&lt;/strong&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href=&quot;http://&quot; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://&quot; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p><strong><em><code></code></em></strong><br />
<blockquote></blockquote>
</p><p><a href="http://" rel="nofollow"></a><a href="http://" rel="nofollow"></a></p>]]></content:encoded>
	</item>
	<item>
		<title>By: soma</title>
		<link>http://www.sitepoint.com/blogs/2004/08/31/crouching-javascript-hidden-php-2/comment-page-1/#comment-17750</link>
		<dc:creator>soma</dc:creator>
		<pubDate>Thu, 13 Apr 2006 14:45:11 +0000</pubDate>
		<guid isPermaLink="false">999653599#comment-17750</guid>
		<description>&lt;a href=&quot;http://31548.rapidforum.com&quot; rel=&quot;nofollow&quot;&gt;Soma - Buy Cheap Soma in our Online Pharmacy&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p><a href="http://31548.rapidforum.com" rel="nofollow">Soma &#8211; Buy Cheap Soma in our Online Pharmacy</a></p>]]></content:encoded>
	</item>
	<item>
		<title>By: John Lim</title>
		<link>http://www.sitepoint.com/blogs/2004/08/31/crouching-javascript-hidden-php-2/comment-page-1/#comment-985</link>
		<dc:creator>John Lim</dc:creator>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">999653599#comment-985</guid>
		<description>&lt;p&gt;Harry. I can highly recommend JSRS. I have been using it since 2002. Works very reliably.&lt;/p&gt;

&lt;p&gt;http://www.ashleyit.com/rs/&lt;/p&gt;

&lt;p&gt;For a demo of what we are using it for, see the cascading menus that auto-update at:&lt;/p&gt;

&lt;p&gt;http://phplens.com/lens/ex/ex960.php&lt;/p&gt;

&lt;p&gt;PS: The iframe does get added to the document, but is invisible, unless you enable debugging.&lt;/p&gt;

</description>
		<content:encoded><![CDATA[<p>Harry. I can highly recommend JSRS. I have been using it since 2002. Works very reliably.</p>
<p><a href="http://www.ashleyit.com/rs/" rel="nofollow">http://www.ashleyit.com/rs/</a></p>
<p>For a demo of what we are using it for, see the cascading menus that auto-update at:</p>
<p><a href="http://phplens.com/lens/ex/ex960.php" rel="nofollow">http://phplens.com/lens/ex/ex960.php</a></p>
<p>PS: The iframe does get added to the document, but is invisible, unless you enable debugging.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: arborint</title>
		<link>http://www.sitepoint.com/blogs/2004/08/31/crouching-javascript-hidden-php-2/comment-page-1/#comment-986</link>
		<dc:creator>arborint</dc:creator>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">999653599#comment-986</guid>
		<description>&lt;p&gt;One of the problems with Javascript is the total lack of standard libraries to do even the simplest of things. Button rollovers and forms validation is a classic examples. I&#039;ve coded various versions of each or used the Macromedia or Adobe ones. &lt;/p&gt;

&lt;p&gt;Why there are not standard libraries or at least standard interfaces for these things has always baffled me. There are just not that many ways to solve these problems in Javascript. Standard interfaces would give us a standard to code to. &lt;/p&gt;

&lt;p&gt;I think if the PHP community came up with some basic interfaces for Javascript libraries the problems you mention would be reduced. Then there would be the target for interoperability. Libraries would then compete on performance, stability and error handling. &lt;br /&gt;
&lt;/p&gt;

</description>
		<content:encoded><![CDATA[<p>One of the problems with Javascript is the total lack of standard libraries to do even the simplest of things. Button rollovers and forms validation is a classic examples. I&#8217;ve coded various versions of each or used the Macromedia or Adobe ones. </p>
<p>Why there are not standard libraries or at least standard interfaces for these things has always baffled me. There are just not that many ways to solve these problems in Javascript. Standard interfaces would give us a standard to code to. </p>
<p>I think if the PHP community came up with some basic interfaces for Javascript libraries the problems you mention would be reduced. Then there would be the target for interoperability. Libraries would then compete on performance, stability and error handling. </p>]]></content:encoded>
	</item>
	<item>
		<title>By: patrikG</title>
		<link>http://www.sitepoint.com/blogs/2004/08/31/crouching-javascript-hidden-php-2/comment-page-1/#comment-987</link>
		<dc:creator>patrikG</dc:creator>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">999653599#comment-987</guid>
		<description>&lt;p&gt;For something akin to a library there was DynAPI (http://www.dansteinman.com/dynduo/), but unfortunately, this projects has lapsed.&lt;br /&gt;
It was specifically geared towards DHTML - whic does leave out probably the largest share of what Javascript is used for these days.&lt;/p&gt;

&lt;p&gt;Simply to make the point that there were efforts to make a common API for Javascript to all browsers.&lt;/p&gt;

</description>
		<content:encoded><![CDATA[<p>For something akin to a library there was DynAPI (<a href="http://www.dansteinman.com/dynduo/)" rel="nofollow">http://www.dansteinman.com/dynduo/)</a>, but unfortunately, this projects has lapsed.<br />
It was specifically geared towards DHTML &#8211; whic does leave out probably the largest share of what Javascript is used for these days.</p>
<p>Simply to make the point that there were efforts to make a common API for Javascript to all browsers.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: mrsmiley</title>
		<link>http://www.sitepoint.com/blogs/2004/08/31/crouching-javascript-hidden-php-2/comment-page-1/#comment-988</link>
		<dc:creator>mrsmiley</dc:creator>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">999653599#comment-988</guid>
		<description>&lt;p&gt;A comment on JSRS for John Lim, I was (note the past tense) all for JSRS in past, but the issues are with cross browser compatability.  It only works properly in IE.  Its flaky at best under Mozilla with the results not always what you expect.  I also found that in terms of application scalability, the code base becomes hard to maintain long term as you have to maintain both client and server side code bases in tandem to make sure they both work all the time.&lt;/p&gt;

&lt;p&gt;For DynAPI, as far as I know, its still under development, but has slowed right down.  My biggest thing for creating a rich client was a drag drop interface, but couldn&#039;t get it working the way that I wanted.&lt;/p&gt;

&lt;p&gt;I have yet to find a nice unobtrusive DHTML api that doesn&#039;t require me to create interfaces &quot;their way&quot;.  The key for me is that I still want to have to API&#039;s at my disposal without have to create the interface in a way dictated by that API.  For example, to get drag drop running under DynAPI, I cant enable it for relatively positioned elements, only absolute.&lt;/p&gt;

&lt;p&gt;Maybe we should be posting some of these concerns in the DHTML blog to see if those guys can shed any light on the matter?&lt;/p&gt;

</description>
		<content:encoded><![CDATA[<p>A comment on JSRS for John Lim, I was (note the past tense) all for JSRS in past, but the issues are with cross browser compatability.  It only works properly in IE.  Its flaky at best under Mozilla with the results not always what you expect.  I also found that in terms of application scalability, the code base becomes hard to maintain long term as you have to maintain both client and server side code bases in tandem to make sure they both work all the time.</p>
<p>For DynAPI, as far as I know, its still under development, but has slowed right down.  My biggest thing for creating a rich client was a drag drop interface, but couldn&#8217;t get it working the way that I wanted.</p>
<p>I have yet to find a nice unobtrusive DHTML api that doesn&#8217;t require me to create interfaces &#8220;their way&#8221;.  The key for me is that I still want to have to API&#8217;s at my disposal without have to create the interface in a way dictated by that API.  For example, to get drag drop running under DynAPI, I cant enable it for relatively positioned elements, only absolute.</p>
<p>Maybe we should be posting some of these concerns in the DHTML blog to see if those guys can shed any light on the matter?</p>]]></content:encoded>
	</item>
	<item>
		<title>By: arborint</title>
		<link>http://www.sitepoint.com/blogs/2004/08/31/crouching-javascript-hidden-php-2/comment-page-1/#comment-989</link>
		<dc:creator>arborint</dc:creator>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">999653599#comment-989</guid>
		<description>&lt;p&gt;I haven&#039;t used JSRS, but I have used DynAPI for fairly complex drag and drop stuff that worked like Flash but could be easily generated out of a database. It was pretty easy to get thing working using DynAPI. If there were standard libraries like DynAPI there would be much less need for Flash, especially if you add SVG to the mix. I&#039;d like a more modular set of libraries than DynAPI, as nice as it is, because as I recall it doesn&#039;t deal with the RPC stiff Harry is tackling. &lt;/p&gt;

&lt;p&gt;I am interested in the direction of the examples shown above. I don&#039;t think we need classes built by reflection as much as just solid classes to do the things we need on the client side. The problem with the Javascript sample above is that it magically assumes that there is solid code to do the communication and to display the values. I think we need to start with those libraries. Then it will be easy enough to wrapper them to reflect our PHP framework. &lt;/p&gt;

&lt;p&gt;I think a set of coherent libraries that dealt with things like:&lt;/p&gt;

&lt;p&gt;- graphic positions and display&lt;br /&gt;
- events (timer, keyboard, etc.)&lt;br /&gt;
- inter-frame communication&lt;br /&gt;
- window/document control (open, close, set, etc.)&lt;br /&gt;
- layer management&lt;br /&gt;
- forms data access and validation&lt;/p&gt;

&lt;p&gt;On top of those you could build things like drop down menus whose items could change based on a remote data call. &lt;/p&gt;

&lt;p&gt;I think Harry is more interested in the layer above these, but it would be interesting to do a survey of available Javascript libs to see of a coherent client side framework could be pieced together. Something specific to PHP that PHP applications could target just like Dreamweaver or ColdFusion target their own Javascript libs. &lt;/p&gt;

</description>
		<content:encoded><![CDATA[<p>I haven&#8217;t used JSRS, but I have used DynAPI for fairly complex drag and drop stuff that worked like Flash but could be easily generated out of a database. It was pretty easy to get thing working using DynAPI. If there were standard libraries like DynAPI there would be much less need for Flash, especially if you add SVG to the mix. I&#8217;d like a more modular set of libraries than DynAPI, as nice as it is, because as I recall it doesn&#8217;t deal with the RPC stiff Harry is tackling. </p>
<p>I am interested in the direction of the examples shown above. I don&#8217;t think we need classes built by reflection as much as just solid classes to do the things we need on the client side. The problem with the Javascript sample above is that it magically assumes that there is solid code to do the communication and to display the values. I think we need to start with those libraries. Then it will be easy enough to wrapper them to reflect our PHP framework. </p>
<p>I think a set of coherent libraries that dealt with things like:</p>
<p>- graphic positions and display<br />
- events (timer, keyboard, etc.)<br />
- inter-frame communication<br />
- window/document control (open, close, set, etc.)<br />
- layer management<br />
- forms data access and validation</p>
<p>On top of those you could build things like drop down menus whose items could change based on a remote data call. </p>
<p>I think Harry is more interested in the layer above these, but it would be interesting to do a survey of available Javascript libs to see of a coherent client side framework could be pieced together. Something specific to PHP that PHP applications could target just like Dreamweaver or ColdFusion target their own Javascript libs. </p>]]></content:encoded>
	</item>
	<item>
		<title>By: sweatje</title>
		<link>http://www.sitepoint.com/blogs/2004/08/31/crouching-javascript-hidden-php-2/comment-page-1/#comment-990</link>
		<dc:creator>sweatje</dc:creator>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">999653599#comment-990</guid>
		<description>&lt;p&gt;I have found the x lib from http://www.cross-browser.com/ to be very good for cross browser supported drop and drag operations.  However, I agree with arborint, the intent here is to allow for easy communication between javascript and php without refreshing the entire page.  js doing xmlrpc was what I tested in my origial blog that prompted this, along with noodling using i?frames to do the communications.  The slickest response I have seen so fare is from  dotvoid how posted this little gem: http://www.dotvoid.com/view.php?id=13&lt;br /&gt;
In my mind, this is jsrpc :)&lt;/p&gt;

</description>
		<content:encoded><![CDATA[<p>I have found the x lib from <a href="http://www.cross-browser.com/" rel="nofollow">http://www.cross-browser.com/</a> to be very good for cross browser supported drop and drag operations.  However, I agree with arborint, the intent here is to allow for easy communication between javascript and php without refreshing the entire page.  js doing xmlrpc was what I tested in my origial blog that prompted this, along with noodling using i?frames to do the communications.  The slickest response I have seen so fare is from  dotvoid how posted this little gem: <a href="http://www.dotvoid.com/view.php?id=13" rel="nofollow">http://www.dotvoid.com/view.php?id=13</a><br />
In my mind, this is jsrpc :)</p>]]></content:encoded>
	</item>
	<item>
		<title>By: arborint</title>
		<link>http://www.sitepoint.com/blogs/2004/08/31/crouching-javascript-hidden-php-2/comment-page-1/#comment-991</link>
		<dc:creator>arborint</dc:creator>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">999653599#comment-991</guid>
		<description>&lt;p&gt;Excellent Jason. If you added the dotvoid.com method and also straight frame/iFrame communication to the X lib you may be close to what I was asking for. The real question is: what does a Javascript library that is PHP centric look like. Maybe you can shed some light. &lt;/p&gt;

&lt;p&gt;One of the problems I see is that javascript tends to spread out. Your wactjavascript_autoComplete example demonstrates this. It has the Javascript function in the &lt;head&gt;, but the data array and the specific form field onKeyUp= code is down in the HTML. &lt;/p&gt;

&lt;p&gt;My experience is that the stuff in the &lt;body&gt; should be done first, all the while building a list of the javascript code that needs to be included in the &lt;head&gt;. Then after the &lt;body&gt; is finished you build the required javascript for the &lt;head&gt;. That also eliminates multiple declarations of the same javascript functions by the generator when several things in the &lt;body&gt; use the same functions. &lt;/p&gt;

&lt;p&gt;I do like the way wactjavascript_autoComplete accepts a data array. Receiving most/all of the data via parameters is one key requirement for a PHP centric library.&lt;br /&gt;
&lt;/p&gt;

</description>
		<content:encoded><![CDATA[<p>Excellent Jason. If you added the dotvoid.com method and also straight frame/iFrame communication to the X lib you may be close to what I was asking for. The real question is: what does a Javascript library that is PHP centric look like. Maybe you can shed some light. </p>
<p>One of the problems I see is that javascript tends to spread out. Your wactjavascript_autoComplete example demonstrates this. It has the Javascript function in the <head>, but the data array and the specific form field onKeyUp= code is down in the HTML. </head></p>
<p>My experience is that the stuff in the <body> should be done first, all the while building a list of the javascript code that needs to be included in the <head>. Then after the <body> is finished you build the required javascript for the <head>. That also eliminates multiple declarations of the same javascript functions by the generator when several things in the <body> use the same functions. </body></head></body></head></body></p>
<p>I do like the way wactjavascript_autoComplete accepts a data array. Receiving most/all of the data via parameters is one key requirement for a PHP centric library.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: HarryF</title>
		<link>http://www.sitepoint.com/blogs/2004/08/31/crouching-javascript-hidden-php-2/comment-page-1/#comment-992</link>
		<dc:creator>HarryF</dc:creator>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">999653599#comment-992</guid>
		<description>&lt;p&gt;I have seen projects that have tried to link the server and client side for the purpose of building rich clients, such as &lt;a href=&quot;http://www.ticatk.com/&quot;&gt;Tika:TK&lt;/a&gt; and &lt;a href=&quot;http://sourceforge.net/projects/wabawt/&quot;&gt;WABAWT&lt;/a&gt; (Java / Servlets). Aside from that fact they tie you to a particular look and feel, as mentioned above, think they stuggle with the basic request / response nature of HTTP (vs. desktop event models). A solid layer of &quot;networking&quot; might solve that...&lt;/p&gt;

&lt;p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;br /&gt;
The problem with the Javascript sample above is that it magically assumes that there is solid code to do the communication and to display the values. I think we need to start with those libraries.&lt;br /&gt;
&lt;/p&gt;&lt;/blockquote&gt;&lt;/p&gt;

&lt;p&gt;Agreed. All this has got me thinking I need to release what I&#039;ve done so far and see where it goes.&lt;br /&gt;
&lt;/p&gt;

</description>
		<content:encoded><![CDATA[<p>I have seen projects that have tried to link the server and client side for the purpose of building rich clients, such as <a href="http://www.ticatk.com/">Tika:TK</a> and <a href="http://sourceforge.net/projects/wabawt/">WABAWT</a> (Java / Servlets). Aside from that fact they tie you to a particular look and feel, as mentioned above, think they stuggle with the basic request / response nature of HTTP (vs. desktop event models). A solid layer of &#8220;networking&#8221; might solve that&#8230;</p>
<p>
<blockquote>
<p>
The problem with the Javascript sample above is that it magically assumes that there is solid code to do the communication and to display the values. I think we need to start with those libraries.
</p>
</blockquote>
</p><p>Agreed. All this has got me thinking I need to release what I&#8217;ve done so far and see where it goes.</p>]]></content:encoded>
	</item>
</channel>
</rss>
