速度一直都不理想,突然昨天想到干脆用静态网页算了。
只要思路一转念,剩下的就是实践了。
经过精简精简再精简,只剩下一个静态网页和几个静态js,再include一个动态js。
基本上结构是这样的:
一个静态html描述了大致的界面,然后在每个需要动态的内容地方打上标志,也就是设上id,需要翻译的文字也是一样。
静态的js都是功能性函数。在其中一个js中,分析传入的参数,即html后面跟的参数,然后生成动态的include js.
引入的这个动态js是经过rails渲染的,它先执行一些初始化逻辑,最后生成类json,包括了翻译后的文字和需要初始化的变量。
直接用string render,没有用其他框架。
这样相当于把界面渲染工作全交给浏览器,服务器则在生成动态js的时候完成逻辑,剩下的动态工作完全交给ajax去完成。
进一步地减少js量,可以把静态js压缩成gz,然后配好apache的gzip配置,这样大大减少通讯量。实际上经过试验,yahoo ui中:
yahoo-dom-event 可以压缩到9k多
connection可以压缩到3k多
几乎可以忽略了。
理想的动态界面:html+静态js+动态js
演示在:http://webiocs.org,点击右下角的客服图标
这个对话框中的html+js基本上只有30k,那张图有20k。
只要思路一转念,剩下的就是实践了。
经过精简精简再精简,只剩下一个静态网页和几个静态js,再include一个动态js。
基本上结构是这样的:
一个静态html描述了大致的界面,然后在每个需要动态的内容地方打上标志,也就是设上id,需要翻译的文字也是一样。
静态的js都是功能性函数。在其中一个js中,分析传入的参数,即html后面跟的参数,然后生成动态的include js.
引入的这个动态js是经过rails渲染的,它先执行一些初始化逻辑,最后生成类json,包括了翻译后的文字和需要初始化的变量。
直接用string render,没有用其他框架。
这样相当于把界面渲染工作全交给浏览器,服务器则在生成动态js的时候完成逻辑,剩下的动态工作完全交给ajax去完成。
进一步地减少js量,可以把静态js压缩成gz,然后配好apache的gzip配置,这样大大减少通讯量。实际上经过试验,yahoo ui中:
yahoo-dom-event 可以压缩到9k多
connection可以压缩到3k多
几乎可以忽略了。
理想的动态界面:html+静态js+动态js
演示在:http://webiocs.org,点击右下角的客服图标
这个对话框中的html+js基本上只有30k,那张图有20k。