8月前端 tips
2010-09-29 11:06 一醉而过 阅读(1075) 评论(0) 编辑 收藏 举报8.2 - 8.6
104.【JS】获取当前时间的毫秒数可通过以下方法:new Date().getTime(), new Date().valueOf(), +new Date(), new Date() * 1, Date.parse(Date()) … 等等,前四种方法括号内可以带时间的参数,可以返回相应的时间的毫秒数,而最后一个会忽略掉任何参数。推荐看下:http://www.gracecode.com/archives/3004/ (剑翎,乔福)
105.【Flash】页面中的swf配置参数中wmode一般 为 window。即独立窗口模式播放,不与当前HTML产生交互。(龙藏)
106.【Mobile】兼容iPhone/Android的屏幕旋转事件:
var supportsOrientationChange = "onorientationchange" in window,
orientationEvent = supportsOrientationChange ? "orientationchange" : "resize";
window.addEventListener(orientationEvent, function() {
switch(window.orientation){
case 0:
//do sth;
break;
case 90:
//do sth;
break;
}
}, false); (王卓)
107.【JS】+ 的字符串连接在传统的 IE 浏览器下性能低下,可考虑使用数组索引(或push,索引略快)添加、join最终拼接的方式(但:Safari、Opera、Chrome和IE8浏览器都已优化了+的字符串连接性能,优于数组的方法)。(圆心)
108.【JS】!!可以便捷的强制把其他类型转换为布尔类型,比如 !!1。
8.9 - 8.13
109.【CSS】应该特别关注的引起 reflow 的几个原因:计算 offsetWidth 和 offsetHeight 属性、改变字体。
详细可阅读:http://www.planabc.net/2009/04/13/reflow/ (圆心)
110.【Mobile】获取当前地理位置的方法:navigator.geolocation.getCurrentPosition(showMap/*回调函数*/),坐标变量:latitude = position.coords.latitude; longitude = position.coords.longitude;(王卓)
111.【Flash】在页面中应用swf对象的,如果对显示没有特殊要求,请不要将wmode 强制写为 opaque 或 transparent,这会影响其性能。(龙藏)
112.【JS】在使用 parseInt 函数转换数字的时候,尽量带上第二个参数,强制转换为某一进制类型的数字,否则,如 parseInt('080') 可能不能获得你想要的结果,推荐使用 parseInt('080', 10)
113.【JS】在 IE 中当重新设置新的 href 属性值时,如果链接文字含有 “http://” 或 “@” ,则其 innerHTML 将显示不正确,显示成设置的 href 属性。解决方法是在修改href时,赋值前面加一个空格。(圆心)
8.16 - 8.20
114.【JS】在做数组或者其它依赖 length 属性的循环时,建议先对 length 赋值,这样可以避免每次循环都去计算 length(特殊情况除外),例如:
var myString = "Hello";
for ( var i = 0, len = myString.length; i < len; i++ ) {
alert( myString.charAt( i ) );
}
115.【Mobile】Android 2.2 webkit新APIs:navigator.connection.type可以判断当前网络连接的类型;navigator.onLine检测设备是否联网;navigator.isApplicationInstalled检测是否安装某一个本地应用(王卓)
116.【JS】当脚本将 img 元素 innerHTML 给其他创建的元素,未添加到 DOM 树,则除 Opera 外,其他浏览器都会立即请求图片。(圆心)
117.【Flash】对于swf的内容,优雅降级的最佳事件是给出可替换内容“alternative content”. 这部分内容仅在<object>中被直接支持。这就是为什么推荐一般采用 <object> 进行swf嵌入的原因。(龙藏)
118.【CSS】IE bug Table: http://ued.alipay.com/2010/07/ie-beat-the-holy-canon-css-bug-table/ (龙刚)
8.22 - 8.26
119.【JS】IE为setInterval提供的延时时间不能为0。当setInterval的延时时间为0时,它会转变成 setTimeout(仅执行一次回调函数),可以通过为其提供1ms的延迟来解决这个问题。(圆心)
120.【Flash】swf在不绑定或动态加载字体的情况下,一般仅支持 _sans (类似 Helvetica 或 Arial)、_serif (类似 Times Roman) 和_typewriter (类似 Courier) 三类字体。(龙藏)
121.【Mobile】iPhone上使用Gestures API来实现缩放和旋转:
var width = 100, height = 200, rotation = ;
node.ongesturechange = function(e){
var node = e.target;
// 缩放和旋转都是相对值,
// 所以要等手势结束时再更改我们的变量
node.style.width = (width * e.scale) + "px";
node.style.height = (height * e.scale) + "px";
node.style.webkitTransform = "rotate(" + ((rotation + e.rotation) % 360) + "deg)";
}
node.ongestureend = function(e){
// 更新这些变量,以备后用
width *= e.scale;
height *= e.scale;
rotation = (rotation + e.rotation) % 360;
}
(王卓)
122.【JS】对于select中的值,用JS选中它,除了用xxx.options[指定的index]以外,如果已经预先知道需要选中的那项的值,还可以直接用select.value=指定的值来快速搞定。(龙刚)
123.【JS】条件判断时,比如 if ( myNum == 3 ),建议书写为 if ( 3 == myNum ),因为后者在你误写 == 为 = 或者其它失误时,错误发生后你可以很容易的发行问题,浏览器的报错提示也会有更友好的提示。
8.30 - 8.31
124.【Flash】给swf传递参数或者以flashvars方式传递。可以支持内容编码过的JSON和 XML。如对 JSON的所有 value 进行 encodeURIComponent。(龙藏)
125.【JS】在使用 setTimeout 或者 setInterval 函数时,需要注意,如果第一个参数传入的是字符串,那么将在全局作用域里寻找此函数,而不会在当前作用域中寻找,所以建议第一个参数传入函数,比如:setTimeout( function() { loop(counter); }, 1000 );。