<?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>Goutamdey.com &#187; Javascript</title>
	<atom:link href="http://goutamdey.com/blog/coding/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://goutamdey.com</link>
	<description>Web development blog from Kolkata(Calcutta),India</description>
	<lastBuildDate>Thu, 07 Jan 2010 20:54:02 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>5 Javascript MVC Frameworks</title>
		<link>http://goutamdey.com/2010/01/02/5-javascript-mvc-frameworks-2/</link>
		<comments>http://goutamdey.com/2010/01/02/5-javascript-mvc-frameworks-2/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 06:17:43 +0000</pubDate>
		<dc:creator>goutam</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">http://goutamdey.com/?p=102</guid>
		<description><![CDATA[What is MVC?
In general when ever we talk about MVC we think about software engineering and design patterns which ease the life for a software developers. But MVC is not only a a design pattern for software engineering,  MVC is also a recommended pattern for HCI/Usability suggested by Jan Borchers in his book “A Pattern [...]]]></description>
			<content:encoded><![CDATA[<p><strong>What is MVC?</strong></p>
<p>In general when ever we talk about <a href="http://www.google.co.in/url?sa=t&amp;source=web&amp;ct=res&amp;cd=1&amp;ved=0CAgQFjAA&amp;url=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FModel%25E2%2580%2593view%25E2%2580%2593controller&amp;rct=j&amp;q=MVC&amp;ei=abM5S_O1EY-TkAWf5uyFCQ&amp;usg=AFQjCNEoEvCDLhz2Yph-XxbO1YhFwwXLIg" target="_blank">MVC </a>we think about software engineering and design patterns which ease the life for a software developers. But MVC is not only a a design pattern for software engineering,  MVC is also a recommended pattern for HCI/Usability suggested by <a href="http://hci.rwth-aachen.de/borchers" target="_blank">Jan Borchers</a> in his book “A Pattern Approach to Interaction Design” .</p>
<p><strong>Why we need it?</strong></p>
<p>In today’s world of software development <a href="http://en.wikipedia.org/wiki/Usability" target="_blank">usability</a> and <a href="http://en.wikipedia.org/wiki/Interaction_design" target="_blank">interaction design</a> considerations are inevitable. We all know about the buzz “<a href="http://en.wikipedia.org/wiki/Enterprise_social_software" target="_blank">Enterprise 2.0</a>” ( I will be posting some of my ideas on this very soon) and we just not think of an enterprise application without lots of big and really long forms. As web has become a ‘de facto’ standard for new breed of software&#8217;s in anyway we need to put a lot of client side validations(a hefty line of codes) and usability and UI tweaking for web forms.</p>
<p>Yes I can understand, no body wants to be remembered of those nightmares, but it is inevitable in any way. So please consider using a MVC here even for this forces of software designing.</p>
<p>We have ‘views’ as forms, we have ‘models’ and business/validation logic  and if we could glue-in the ‘controller’ we are done to solve our puzzle by using MVC in javascripts.</p>
<p>Going more into the frameworks available as of today is out of the scope of this article but I would like to put more in this subject when ever I get some more time to provide my readers a working samples to use and evaluate. For the time being the list of best(according to me) javascript MVC frameworks available for use.</p>
<h4><strong>SproutCore</strong></h4>
<p><a href="http://goutamdey.com/wp-content/uploads/2009/12/sproutecore.jpg"><img title="sproutecore" src="http://goutamdey.com/wp-content/uploads/2009/12/sproutecore_thumb.jpg" border="0" alt="sproutecore" width="504" height="254" /></a></p>
<p><strong><a href="http://www.sproutcore.com/home/" target="_blank">SproutCore</a></strong> is an open-source platform for building fast rich cloud applications on the web.  Specifically, the tools we develop are suitable for building large-scale applications that scale to many millions of users across many different devices.</p>
<h4><strong>PureMVC framework for Javascript</strong></h4>
<p><a href="http://goutamdey.com/wp-content/uploads/2009/12/puremvc.jpg"><img title="puremvc" src="http://goutamdey.com/wp-content/uploads/2009/12/puremvc_thumb.jpg" border="0" alt="puremvc" width="504" height="254" /></a></p>
<p><a href="http://darkstar.puremvc.org/" target="_blank">PureMVC</a> is a lightweight framework for creating applications based upon the classic Model-View-Controller design meta-pattern.<br />
This free, open-source framework is implemented in ActionScript 2 and 3, Java, Javascript and a number of other popular programming languages. This allows development on a wide variety of platforms.</p>
<h4><strong>CorMVC</strong></h4>
<p><a href="http://goutamdey.com/wp-content/uploads/2009/12/cormvc.jpg"><img title="cormvc" src="http://goutamdey.com/wp-content/uploads/2009/12/cormvc_thumb.jpg" border="0" alt="cormvc" width="504" height="254" /></a></p>
<p><a href="http://www.bennadel.com/resources/projects/cormvc/demo/index.htm#/home" target="_blank">CorMVC</a> stands for: <strong>C</strong>lient-<strong>O</strong>nly-<strong>R</strong>equired <strong>M</strong>odel-<strong>V</strong>iew-<strong>C</strong>ontroller, the application architecture held completely separate from server-side technologies. Ideal for single page application.</p>
<h4><strong>JavascriptMVC Javascript MVC framework based on JQuery.</strong></h4>
<p><a href="http://goutamdey.com/wp-content/uploads/2009/12/javascriptmvc.jpg"><img title="javascriptmvc" src="http://goutamdey.com/wp-content/uploads/2009/12/javascriptmvc_thumb.jpg" border="0" alt="javascriptmvc" width="504" height="254" /></a></p>
<p><a href="http://www.javascriptmvc.com/" target="_blank">JavaScriptMVC</a> is an open-source framework containing the best ideas in enterprise JavaScript development. It guides you to successfully completed projects by promoting best practices, maintainability, and convention over configuration.</p>
<h4><strong>Jamal</strong></h4>
<p><a href="http://goutamdey.com/wp-content/uploads/2009/12/jamal.jpg"><img title="jamal" src="http://goutamdey.com/wp-content/uploads/2009/12/jamal_thumb.jpg" border="0" alt="jamal" width="504" height="254" /></a></p>
<p><a href="http://jamal-mvc.com/" target="_blank">Jamal</a> is a set of conventions and small javascript libraries to achieve a complete separation of html, css and javascript in your web application. Jamal is built on jQuery and inspired by MVC frameworks like Ruby on Rails, CakePHP and its derivatives.</p>
]]></content:encoded>
			<wfw:commentRss>http://goutamdey.com/2010/01/02/5-javascript-mvc-frameworks-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DOM caching without AJAX</title>
		<link>http://goutamdey.com/2006/05/12/dom-caching-without-ajax/</link>
		<comments>http://goutamdey.com/2006/05/12/dom-caching-without-ajax/#comments</comments>
		<pubDate>Fri, 12 May 2006 19:56:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Caching]]></category>
		<category><![CDATA[DOM]]></category>

		<guid isPermaLink="false">http://goutamdey.gdzine.net/?p=15</guid>
		<description><![CDATA[In my present company we are having huge enterprise java web app for our client. In the web UI of this app. we have provided them a good â€œOO Javascriptâ€ for their dropdown navigation.
Dropdown navigation system was written in such a way so that it can fetch navigational data from database after implementation of proper [...]]]></description>
			<content:encoded><![CDATA[<p>In my present company we are having huge enterprise java web app for our client. In the web UI of this app. we have provided them a good â€œOO Javascriptâ€ for their dropdown navigation.</p>
<p>Dropdown navigation system was written in such a way so that it can fetch navigational data from database after implementation of proper access control.</p>
<p><span id="more-8"></span></p>
<p>And after 2 years the navigation data are huge (over 5 level deep with so many children). And as a result for each request and response phase it has to re render all the elements dynamically and thus slowing down page rendering process.</p>
<p>We had very few option at this point of the project life cycle. We were caching the menu tree at server-side (session) but no other option to cache the rendering process.</p>
<p><!--more--></p>
<p>We were looking for some technique to cache the rendering process ( DOM creation) in rendering the response phase except using frame based navigation. But for a Dropdown navigation system we have developed non-frame based navigation.</p>
<p>So options may be Flash based menu or Ajax call to server. Flash option was not a good solution because anyway we had to re-render the thing on every page refresh.</p>
<p>So the option remains is Ajax. But we were not in a position to take the risk of changing server side code and for security reason unable to introduce DWR for enabling Ajax.</p>
<p>So finally an old trick paid off. Frame is there as â€œtop barâ€ for other notification system and so.</p>
<p>So I have started exploring the code and found that after first rendering menu code is generating elements which is cacheable (container.innerHTML) but the problem is when you attach events dynamically to an object it is not going to have any foot-print in your rendered DOM.</p>
<p>So we have just cached the DOM tree in the top frame and used it next time onwards with few â€œdynamic event attachmentâ€ codes with it.</p>
<pre>    if(!top.topFrame.menubarcache.length){ // check for first time rendering from server            }else {         createMenuBarAndChildrenContainer(); // create the containers        var obj1= document.getElementById(''s1'');         var obj2= document.getElementById(''menuChildren'');                 obj1 = top.topFrame.menubarcache; // storing from cache        obj2 = top.topFrame.menuchildrencache; //stroing from cache        attachevents(obj1); // attach events dynamicaaly        attachevents(obj2); // attach events dynamicaaly    }</pre>
]]></content:encoded>
			<wfw:commentRss>http://goutamdey.com/2006/05/12/dom-caching-without-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.740 seconds -->
