+1 Amardeep.
Thanks -- Divesh Dutta. On Fri, Jun 24, 2016 at 12:50 PM, Amardeep Singh Jhajj < amardeep.jh...@hotwaxsystems.com> wrote: > Hello everyone, > > Currently, OFBiz javascript code (except third party libraries) is not > written with the best practices which can cause following problems - > > 1. Increases the code maintenance effort. > 2. Impact page performance. > 3. Present not good examples to new contributors which leads to C/P to > various areas of js code. > > Here are things we should do for cleanup and improvements in js code. > > 1. Remove unused javascript code and files if any. > 2. Use best practices for javascript coding to improve performance (I have > listed some of it below). > 3. Move utility js functions to one js file. > 4. Remove deprecated code and use latest. For ex: We are still using > "language='javascript'" attribute at script tag which is deprecated a years > ago. > 5. js should be loaded at bottom of the page, currently its in Header. Its > a tedious task now to move it into footer because we have lot of js code > inline in ftls. > 6. js should not be written inline, it should be enough generic to be in > minimum number of files and have generic code for doing the common set of > operations over DOM. > 7. Currently our macros of rendering pages has inline scripts, they can be > moved to one macrorenderer.js with generic code as we can use classes, ids > and data-attributes for doing any operation over html DOM. > 8. After all cleanup work, we can think of build tool (like grunt) for > various javascript build tasks (minification, concatenation of files) if > needed. Its just a thought. > > I know its a huge effort and need to be done carefully. So before doing any > major changes, I would like to start work with first 4 points. > > Here is the list of some best practices to start with: > > 1. Use [] Instead of New Array() > 2. Long list of variables? Omit the "Var" keyword and use commas instead. > 3. Reduce global variables > 4. Use explicit blocks > 5. Start blocks on the same line > 6. Always, Always Use Semicolons - Having said that, this is a very bad > practice that can potentially lead to much bigger, and harder to find, > issues. > 7. Optimize loops. Avoid calculating the length of array in for loop > iteration. > 8. Avoid multiple redundant jQuery DOM manupulation by saving reference to > any object. > 9. Try to use meaningful comments. > 10. Many more. > > Here are some links of best practices information- > > https://www.w3.org/wiki/JavaScript_best_practices > http://www.codeproject.com/Articles/580165/JavaScript-Best-Practices > https://developer.yahoo.com/performance/rules.html > > If everyone agrees, I would like to start on this work. > > Please let me know your thoughts on it. > > Thanks and Regards > -- > Amardeep Singh Jhajj >