为了更好的提升用户体验,移动端逐渐出了许多的移动端的框架,比如Sencha Touch、JQTouch、Jquery-moblie、jqMobi等等。这些框架都有优缺点,不同的框架应用在不同的项目中。现简单阐述一下各框架的优缺点: 一、Sencha Touch框架是一个重量级的框架、它上手较难,代码复杂,并且需要较强的程序基础才能学习,最开始的时候因为一个项目,想使用Sencha Touch框架,后来工期实在太紧张,根本没时间学习它并使用。所以最后转投其他框架。这个框架兼容性很高,运行起来的速度一般,需要长时间的学习且需要水平较高的程序基础才行。所以不太适合前端制作人员的使用。我会在以后的机会单开一篇关于它的使用demo。 二、JQTouch是一个轻量级框架、纯jquery写法,上手比较容易,代码容易理解,加载速度也很快,缺点是配合的移动端效果插件较少,需要很多外部的插件相结合,另外,个别插件还需要解决与框架之间的兼容问题。它的最大的一个弊端就是可利用和变通的布局较少。 三、Jquery-moblie也是一个轻量级框架、纯jquery写法,上手容易,代码容易理解,但由于其绑定的前端效果插件过多,且代码结构有些臃 肿,造成加载速度很慢。尤其是在android系统上测试,速度很慢。用户体验效果不太好,它比较适合开发IPAD或是IOS系统的高端机型。 四、jqMobi也是一个轻量级框架、它的语言基于jquery语言。并对其进行了简化,更有利于在移动设备上进行应用,并且速度很流畅。上手也比较容…
May 16, 2015
在JavaScript里嵌入大量字符串常量的方法
在JavaScript文件里嵌入大量字符串常量是经常遇到的事。有时为了省事,就把一些界面的HTML和CSS直接写在JS文件里。数量少还好,多的话就密密麻麻的一坨文字,讲究美观的文艺青年们,会用大量的字符连接符号甚至加上缩进,强制换成好几行。例如:
var html = '<div>' + '<p>Hello</p>' + '<p>World'</p>' + '</div>';
这还好,要是字符串里有不少双引号单引号,那就更麻烦了,各种转义字符看的眼花缭乱。
其实有个不怎么起眼的小技巧,就能解决这个问题。大家总认为字符串必须在”…”或’…’里面,这点没错。但还有一个地方的字符串也能当 非代码语义保存下来,那就是一个function的toString,把整个函数的代码当字符串输出——其中的注释部分当然也是保留的!
所以我们写个空函数,里面就一个/**/注释,其中就是我们想要的常量内容。toString后加一个正则就可以提取我们想要的!
马上试试:
var RES_CODE = _TEXT(function(){/* #include <iostream> int main() { std::cout << "Hello world" << std::endl; return 0; } */}); var RES_POEM = _TEXT(function(){/* 更吹落,星如雨。 宝马雕车香满路。 凤箫声动,玉壶光转,一夜鱼龙舞。 蛾儿雪柳黄金缕, 笑语盈盈暗香去。 众里寻他千百度, 蓦然回首,那人却在灯火阑珊处。 */}); var RES_XML = _TEXT(function(){/* <projectDescription> <name>Hello</name> <comment></comment> <projects> </projects> <buildSpec> <buildCommand> <name>com.adobe.flexbuilder.project.flexbuilder</name> <arguments> </arguments> </buildCommand> <buildCommand> <name>com.adobe.flexbuilder.project.apollobuilder</name> <arguments> </arguments> </buildCommand> </buildSpec> </projectDescription> */}); function _TEXT(wrap) { return wrap.toString().match(//*s([sS]*)s*//)[1]; } alert(RES_CODE); alert(RES_POEM); alert(RES_XML);
OK!就是Chrome里把注释每行前面的Tab去掉了,如果仅仅是放代码的话问题也不大~ 当然有个前提是字符里不能出现*/
尝试下看看: http://www.etherdream.com/funnyscript/js_multiline_const_string.html
值得注意的是,压缩代码的时会过滤注释,需要手动排除一部分。
原文:http://www.cnblogs.com/index-html/archive/2013/04/23/js_multiline_const_string.html