As I said, it seems to me you are making assumptions based on some old examples - demos created 6 years ago that still exists for backward compatibility. In actual fact, there is very little difference (for example) in the way jqGrid works in comparison to an extJS grid. RNS 6.0 is an "even fatter" client approach, using ember. Also, the JavaScript engine itself has garbage collection - so there is one in play whether you use jQuery, ExtJS or any other library you care to think of. It is not a unique feature of ExtJS. By all means expound the benefits of your own methods, but do not do it by making incorrect/misleading statements about WOW, RNS or any other approach. It is not a "mine is better than yours" contest, it is an exchange of ideas.




-----Original Message-----
From: web400-bounces@xxxxxxxxxxxx [mailto:web400-bounces@xxxxxxxxxxxx] On Behalf Of Henrik Rützou
Sent: 14 January 2013 19:39
To: Web Enabling the IBM i (AS/400 and iSeries)
Subject: Re: [WEB400] Increase IBM i Web Development Productivity With Generic Components?

Kevin,



"It must be getting late. No garbage collection??"



EXT JS runs garbage collection every 30 seconds to remove storage and object allocations that aren’t active in the DOM anymore. If it didn't the browser session would consume more and more memory during the session due to long gone inactive objects. Remember EXT JS is OO javascript and whatever is rendered in the browser has a corresponding OO javascript object that handles it and there is no *INLR=*ON in javascript objects.



In an EXT JS Viewport you can have 1-n tabs (programs) active at the same time and when a user closes a tab (program) – you need to clean the “garbage” up. You can select to run the tabs inside a single level EXT JS structure or you can chose to run the tabs in IFRAME’s – but it really doesn’t matter the Viewport controls whatever is active under its control.
There is nothing new in this, any OO oriented language needs to clean up on a higher level that the scope the object exists in.



This is a complete other approach than what you use, where you, as I see it, passes a complete HTML section < RNSRESPONSE > (grid/form) through XR0001.PGM to be displayed by replacing the content in a predefined area
(div?) of the main page/viewport. By doing so you automatically clean up previously content of the DOM but are constrained to have only one central page open at any time.



In other words, when you display a grid you call XR0001.PGM to serve the grid, when you display a record you call XR0001.PGM again (and loses the
grid) and when you press "cancel" you ask XR0001.PGM to serve the grid again so you actually doesn’t go back to what you already has served you go forward asking the server for a page it just previously has served since the grid object was removed when you served the form.



EXT JS works so differently and has a much more binary APP/fat client structure where the server only delivers data, when you close a window/form object this object signals back to an event listener in the already loaded grid object's JSON Data Store that it should reload its data but not the code from the server and by doing so the result is automatically shown in the DOM and that is in any regards much more slimmer and faster than reloading a complete new page.



At the same time the form object goes inactive and the build in EXT JS garbage collector that manages lists of any defined object will remove the allocated lower level object.



I hope the above clarifies why I wrote what I did, we simply lives in to different development environments/paradigms and I will be the first to admit that EXT JS probably has the steepest learning curve I have ever experienced in my career, it is simply a complete other paradigm than we as IBM I (and most PHP/.NET) programmers are used to.






On Sun, Jan 13, 2013 at 2:09 AM, Kevin Turner
<kevin.turner@xxxxxxxxxxxxxxx>wrote:

It must be getting late. No garbage collection??





--
Regards,
Henrik Rützou

http://powerEXT.com <http://powerext.com/>
--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing list To post a message email: WEB400@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at http://archive.midrange.com/web400.


NOTICE: The information in this electronic mail transmission is intended by CoralTree Systems Ltd for the use of the named individuals or entity to which it is directed and may contain information that is privileged or otherwise confidential. If you have received this electronic mail transmission in error, please delete it from your system without copying or forwarding it, and notify the sender of the error by reply email or by telephone, so that the sender's address records can be corrected.



--------------------------------------------------------------------------------


CoralTree Systems Limited
25 Barnes Wallis Road
Segensworth East, Fareham
PO15 5TT

Company Registration Number 5021022.
Registered Office:
12-14 Carlton Place
Southampton, UK
SO15 2EA
VAT Registration Number 834 1020 74.

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.