72 | | |
73 | | ==== Deployment ==== |
74 | | Browsers default to only downloading 2 files from the same origin at a time, so many files is very slow on high latency links. |
75 | | |
76 | | We therefore consolidate into fewer, larger files when running in Production mode. |
77 | | |
78 | | Although, note that iPhone 3.x cannot cache files larger than 15kb and in iPhone 4 the limit is 25kb. And this is the size before gzipping. |
79 | | |
80 | | Since GIS is a specialised app which requires many files, it's JS is loaded separately when required. |
81 | | |
82 | | The build script is {{{static/scripts/tools/build.sahana.py}}} |
83 | | |
84 | | It needs to be run as a web2py script: |
85 | | {{{ |
86 | | python web2py.py -S eden -M -R applications/eden/static/scripts/tools/build.sahana.py |
87 | | }}} |
88 | | |
89 | | There is also a convenience wrapper for Windows to run this: {{{static/scripts/tools/build.cmd}}} |
90 | | |
91 | | You must have an internet connection to run the build script unless you have a local version of the Compiler. |
92 | | |
93 | | Our build process is based on the one used by !OpenLayers |
94 | | * http://trac.openlayers.org/wiki/Profiles |
95 | | |
96 | | This uses Google's Closure compiler to compress the JS. This is done using their web service, however for !OpenLayers itself we need to download the jar file & place in the tools folder since this is over 1Mb: |
97 | | * http://closure-compiler.googlecode.com/files/compiler-latest.zip |
98 | | |
99 | | !ToDo: Investigate using other options instead: |
100 | | * http://developer.yahoo.com/yui/compressor/ |
101 | | * http://www.crowproductions.de/repos/main/public/packer/jspacker.py |
102 | | |
103 | | !ToDo: Download/execute scripts asynchronously: |
104 | | * Projects/Advanced/Optimisation |
105 | | |
106 | | == Mobile == |
107 | | * [wiki:DeveloperGuidelines/Mobile/Android Android] - Android clients |