2012年4月23日

随机问题之--洗牌算法

摘要: 洗牌算法是我们常见的随机问题,在玩游戏、随机排序时经常会碰到。它可以抽象成这样:得到一个M以内的所有自然数的随机顺序数组。在百度搜“洗牌算法”,第一个结果是《百度文库-洗牌算法》:http://wenku.baidu.com/view/c4fea82658fb770bf78a55b7.html扫了一下里面的内容,很多内容都容易误导别人走上歧途,包括最后用链表代替数组,也只是一个有限的优化(链表也引入了读取效率的损失)。该文里的第一种方法,可以简单描述成:随机抽牌,放在另一组;再次抽取,抽到空牌则重复抽。“抽到空牌则重复抽”这会导致后面抽到空牌的机会越来越大,显然是不合理的。可以优化一步成:牌抽阅读全文

posted @ 2012-04-23 21:23 JKisJK 阅读(1459) 评论(1) 编辑

2012年4月8日

onclick与listeners的执行先后问题

摘要: 以下代码,会先执行onclick,然后再执行事件监控:<HTML><HEAD> <TITLE>JK Test</TITLE> <META content="text/html; charset=utf-8" http-equiv=Content-Type> <script src="http://s0.qhimg.com/lib/qwrap/110.js" type="text/javascript"></script> <style> d阅读全文

posted @ 2012-04-08 14:19 JKisJK 阅读(206) 评论(0) 编辑

2011年12月31日

Textarea与懒惰渲染

摘要: 2008年有啊第一次性能优化时,我们曾用textarea来存贮需要懒惰渲染的节点。代码如下。<div>立即渲染内容<ul> <li>张三<img src="p01.jpg"/></li> <li>张四<img src="p02.jpg"/></li></ul></div><div><textarea id="lazyRender01" style="display:none"&g阅读全文

posted @ 2011-12-31 21:12 JKisJK 阅读(463) 评论(5) 编辑

2011年11月27日

QWrap Selector之W3C版

摘要: 之前也曾经有过一系列《QWrap Selector解密》 文章,讲到过QWrap里的dom/selector.js里的大多数要点。今天又整了一个完全依赖浏览器的querySelectorAll的slector版本:selector_w3c.js。与之前的selector.js的接口名称相同。我们自己写一个selector.js,这样我们就有弥补标准的不足的自由。例如,就算最新的浏览器,也依然没有人严格实现matchesSelector。而我们的selector.js里早就有了filter与test方法来实现matchesSelector的功能。从另一个角度看,我们有时需要为某些特定场景定制一些阅读全文

posted @ 2011-11-27 19:06 JKisJK 阅读(380) 评论(0) 编辑

2011年11月25日

原来window.event快达到全浏览器支持了

摘要: 在Tangram群里讨论到<a href="#" onclick="baidu.event.preventDefault(event);">的写法时,以为标准浏览器只能用arguments[0]来获取到event,结果nodiseal同学说已经可以这么用了,于是做了以下测试。。。看下以下代码在各浏览器下的结果:<body onclick="alert([window.event,event,this.event]);">test</body>IE8: object,object,undefinedF阅读全文

posted @ 2011-11-25 14:25 JKisJK 阅读(452) 评论(4) 编辑

2011年11月17日

JSS----另一种节点与JS数据的关系模式

摘要: 节点JS数据的用途一个简单的例子,我们的页面需要一个日期输入框,用html5可以简写为:<input name="birthday" type="date"/>但是,只有type="date"这一个设置,远远不能满足交互需求。看一下wagang的valid组件(http://dev.qwrap.com/resource/js/wagang/valid/_examples/Valid-BaseDemo.htm )里,与日期输入框交互有关的信息还有哪些: minValue 最小日期 maxValue 最大日期 d_format阅读全文

posted @ 2011-11-17 16:37 JKisJK 阅读(1473) 评论(4) 编辑

2011年11月11日

html结构错误小记

摘要: 这段代码,IE下报错:<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"/><title>test</title></head><body >hello</body><script>document.body.innerHTML='<p><pre>ddd<br></pre></p&阅读全文

posted @ 2011-11-11 14:17 JKisJK 阅读(223) 评论(0) 编辑

2011年9月30日

右键集成JS文件压缩 YUI Compressor

摘要: 几年前,国忠同学转发过一篇右键集成的YUI压缩的邮件,最近发现对不少同学还是有用,就把它成整成这一篇随笔吧。在网上看过也有一些类似的文章,不过大多是很长的代码,而本做法由于用到了filemenutools工具,代码相对来说少一些。内容如下:-----------------------------------------------------可以把YUICompressor集成到右键,可以通过压缩来自查代码。如以下。需要 :YUI Compressor : http://developer.yahoo.com/yui/compressor/filemenutools : http://www阅读全文

posted @ 2011-09-30 13:02 JKisJK 阅读(461) 评论(1) 编辑

2011年9月5日

关于window.external

摘要: 由于工作中有很多时候需要用到window.external,以前一直稀里糊涂的,今天又被人问到,于是突击学习了一下,记下备忘。--------------------------------------我们在js中可以通过window.external.aaaa()来调用浏览器提供的外部方法aaaa。IE的已默认实现了一些外部方法,可以参见1:某中文文章:http://www.it118.org/Specials/2e876829-483a-4216-a6ef-08a472c94297/8f8d0507-b4c8-4d92-8e35-3c88dade3a17.htm2:官方文档里有更多: ht阅读全文

posted @ 2011-09-05 15:43 JKisJK 阅读(1570) 评论(1) 编辑

2011年8月7日

QWrap入门指南

摘要: 你只需要一点javascript语言的基本知识,就可以来轻松使用QWrap了。当QWrap初出来的时候,很多同学会先问:“JQuery已经很好,为什么要重复造轮子?”的确,所有的js库都是轮子;但是细看一下再用一下,会发现不同的轮子有不同的特色。本文将带你体验一下QWrap是个怎样的轮子。本文部分结构与文字来自阮一峰的博文《jQuery设计思想》,衷心感谢。===========================================QWrap入门指南前言:只需要引入这一个51K大小的js(gzip后大小为17K),就可以开始使用QWrap写代码了:<script src=&qu阅读全文

posted @ 2011-08-07 22:31 JKisJK 阅读(2577) 评论(14) 编辑