| Summary: | Reduce size of client Javascript code | ||
|---|---|---|---|
| Product: | [RT] RAP | Reporter: | Ralf Sternberg <rsternberg> |
| Component: | RWT | Assignee: | Project Inbox <rap-inbox> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | enhancement | ||
| Priority: | P3 | CC: | tbuschto, vineelyalamarthy |
| Version: | 1.4 | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Bug Depends on: | 328107, 330225, 332524, 342047, 384157, 384163 | ||
| Bug Blocks: | |||
|
Description
Ralf Sternberg
I removed the following unused classes in CVS HEAD: - qx.io.remote.IframeTransport - qx.ui.form.InputCheckSymbol - qx.ui.form.CheckBox - qx.ui.form.RadioButton - qx.log.appender.HtmlElement - qx.application.Basic I manually searched for static qooxdoo classes that could be removed, but found nothing that could be safely be removed without major refactoring. I removed some dead code from the qx.bom.Element.* classes. I removed unused classes qx.constant.Core, qx.core.Package and qx.lang.Generics in CVS HEAD. I found a couple more classes that can be removed with a reasonable amount of refactoring. Also, some more classes can be reduced in size by removing dead code. Removed more dead code in CVS HEAD from these static classes: - qx.dom.Node - qx.util.Validation - qx.util.ColorUtil - qx.html.Dimension - qx.html.Scroll - qx.html.StyleSheet - qx.lang.Array - qx.lang.Function - qx.lang.String Removed everyhting qx.locale.* (5 classes) with some refactoring in Calendar.js, Property.js, and Spinner.js. removed qx.core.Log and the dead code in Object.js that used it. Removed all remaining Interfaces (IApplication, IResizeable, IRange) with some minor refactoring, and qx.Interace. Interfaces are now no longer supported. Removed the following classes with some minor refactoring in related classes: - qx.core.Aspect - qx.core.Version - qx.util.Compare - qx.bom.client.Engine - qx.util.Normalization Client.js in now 942KB, thats almost 40K less since this bug was opened. I could do this forever, but i think that i now have picked all the low-to-mid-hanging fruits. To remove any more code would mean considerable refactoring. The most tempting remaining target is probably LegacyProperty.js... By removing client-logging and some other stuff we are currently at 880KB. LegacyProperty is used for 3 kinds of properties: - _legacy properties, which are not used, therefore that code can go - _fast properties, which are simple and rarely used, so that can go after some refactoring - _cached proprties, which are heavily used and can not be removed at this time As soon as Bug 342047 is fixed, it might be feasible to remove Alias.js. As soon as Atom has been removed or replaced with MultiCellWidget, the entire Preloading system could go. After the Tree-Table merge, we are now at 863 kB. Can some one explain me , how messages are exchanged between Java code on the server and Java script client code .. in case of Eclipse RAP applications Hi. This is really off-topic, a better place for such questions is the forum (http://www.eclipse.org/forums/index.php?t=thread&frm_id=34). To answer your question, look here: http://wiki.eclipse.org/RAP/RWT I think by 2.0 we trimmed the current client as much as can be done without re-implementing *a lot* of older code, which is hard to justify. Also, the new RAP protocol could provide an opportunity to create a real slim client with a completely new widget set. |