| 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 |