ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
@aamirafridiiShare Performance Considerations
JavaScriptUpdate jQuery to the latest version (1.6)Validated all JSON responsesImplement jQueryUI’swidget patternLibrary for Dialogs, Errors, Information boxes, Help links, TooltipsSingle JS fileUse googlecdn to load libs, should degrade to local libs if cdn failednavigator.geolocation.getCurrentPositionMove all configuration in the wrapper and make it simple for user to understandImprove the performance, less DOM altering/less loops Delete old JS files which are not in use anymoreEmbed Profiler to for performance analysis and implement a unit testing (qUnit)
HTML MarkupMVC: Using templating systemRemove all html from server-side code & studio(?)Implement HTML 5 / CSS3 features e.gexpand/collapse panels (will need JS to support IE<9)Use of more <li>s instead of <div>s(with some exceptions)Implement multilingual module Validate our HTML using different services so we don’t need to fix them for each client
Providing maximum control to the userAll configuration like showNearestResultUnderMap,  jQueryTheme & popupDelay etc should be moved to the template using single JS objectMove iShare CSS files to the template <head> using ##iShare.CssFiles## and than for the content use ##iShare.MainContent## etc
CSSCSS scoping to limit iShare theme so it does not effect client’s design.Overwrite the jQuery UI theme to improve the designMinify the CSS code just like JS codeUse single CSS file for all browsers using modern techniques for easy maintenance,minimize server requests and cleaner implementationProper use of IDs and Classes to avoid using !importantAdd comments based on each section in HTMLRemove all (possible) inline CSS code
iShare My House/NearestAt least 2 different layouts to display panelsDraggable & Expandable panels‘Other things that…’ should show a dialog on the same pageImprove address search (use cache) and implement XMLHttpRequest.abort() for previous requestsMove the ‘Other things..’ and ‘Reset’ buttons to the top around the tabs list – iShare content ‘above-the-fold’
State Managerhtml5 localStorage to save large data (e.g layers info)IE? > Implement one step registration to store information in database instead, specially for intranetMake iShare less cookie dependedCookie naming convention / single pattern of data to be saved (json?) Btw ‘Reset’ button on ‘My Alerts’ is still not clearing all the cookies :P
IntranetjRibbon: Compact version, improve icons, add dropdowns to show thumbnails, help tab, configured using studio?etcInformation browser: Settings tab so user can adjust columns to show, toggle full screen, export results in other versions like PDF, XML etcHighlight/Select sections in thematic layersImprove layers catalog / Show map categoriesAdjust UI (jRibbon, panels & info browser) to make more room for the map
Other points…Links instead of buttons (where possible)Make sure iShare works on all major browsersShould be able to configure all (possible) setting using URL parametersAdjust loader to show useful info based on each eventImprove map popupsComment all the JS files properly so we can document using jsDoc etcPrintToPDF on same page using iFrameThematic maps on PrintToPDF
DROP IE6 SUPPORT?

More Related Content

Ishare

  • 2. JavaScriptUpdate jQuery to the latest version (1.6)Validated all JSON responsesImplement jQueryUI’swidget patternLibrary for Dialogs, Errors, Information boxes, Help links, TooltipsSingle JS fileUse googlecdn to load libs, should degrade to local libs if cdn failednavigator.geolocation.getCurrentPositionMove all configuration in the wrapper and make it simple for user to understandImprove the performance, less DOM altering/less loops Delete old JS files which are not in use anymoreEmbed Profiler to for performance analysis and implement a unit testing (qUnit)
  • 3. HTML MarkupMVC: Using templating systemRemove all html from server-side code & studio(?)Implement HTML 5 / CSS3 features e.gexpand/collapse panels (will need JS to support IE<9)Use of more <li>s instead of <div>s(with some exceptions)Implement multilingual module Validate our HTML using different services so we don’t need to fix them for each client
  • 4. Providing maximum control to the userAll configuration like showNearestResultUnderMap, jQueryTheme & popupDelay etc should be moved to the template using single JS objectMove iShare CSS files to the template <head> using ##iShare.CssFiles## and than for the content use ##iShare.MainContent## etc
  • 5. CSSCSS scoping to limit iShare theme so it does not effect client’s design.Overwrite the jQuery UI theme to improve the designMinify the CSS code just like JS codeUse single CSS file for all browsers using modern techniques for easy maintenance,minimize server requests and cleaner implementationProper use of IDs and Classes to avoid using !importantAdd comments based on each section in HTMLRemove all (possible) inline CSS code
  • 6. iShare My House/NearestAt least 2 different layouts to display panelsDraggable & Expandable panels‘Other things that…’ should show a dialog on the same pageImprove address search (use cache) and implement XMLHttpRequest.abort() for previous requestsMove the ‘Other things..’ and ‘Reset’ buttons to the top around the tabs list – iShare content ‘above-the-fold’
  • 7. State Managerhtml5 localStorage to save large data (e.g layers info)IE? > Implement one step registration to store information in database instead, specially for intranetMake iShare less cookie dependedCookie naming convention / single pattern of data to be saved (json?) Btw ‘Reset’ button on ‘My Alerts’ is still not clearing all the cookies :P
  • 8. IntranetjRibbon: Compact version, improve icons, add dropdowns to show thumbnails, help tab, configured using studio?etcInformation browser: Settings tab so user can adjust columns to show, toggle full screen, export results in other versions like PDF, XML etcHighlight/Select sections in thematic layersImprove layers catalog / Show map categoriesAdjust UI (jRibbon, panels & info browser) to make more room for the map
  • 9. Other points…Links instead of buttons (where possible)Make sure iShare works on all major browsersShould be able to configure all (possible) setting using URL parametersAdjust loader to show useful info based on each eventImprove map popupsComment all the JS files properly so we can document using jsDoc etcPrintToPDF on same page using iFrameThematic maps on PrintToPDF