-gMIS更新:增加input2Select功能(3)

由于 -gMIS 中 input2Search / input2Select 的功能非常好用,此前先后进行了两次更新:

1. -gMIS更新:增加input2Select功能, -R/l2Sn
2. -gMIS更新:增加input2Select功能(2),-R/s2Sx3

现在进行第三次更新,要解决的问题是,当待选/候选列表太长时,比如目前 -People-FwNews 中的站点名称列表,有60K记录,这样长的列表加载到HTML的select元素,用作option时,会影响到页面解析速度,在较好网络的情况下,需要10s左右的时间来处理。这需要优化。

改进的第一个尝试,是使用延时加载或异步加载,在 comm/ido.js 中增加 function lazyLoad, 当前主页面加载完毕之后,再加载这个超长的60K记录的select的option list。

实测的结果是,当通过 -GTAjax 异步加载这60K的记录取回到页面前端,通过JavaScript写入DOM中的select的对应元素,仍需花费6-8s的时间。目前看来时间的花费主要在DOM中构建select的超长option元素。

继续改进,第二个尝试,将这个通过 lazyLoad, -GTAjax 异步加载到当前页面的内容,写入到DOM的select的option中去,修改为写入一个隐藏的input元素中,通过给input.value赋值的办法来实现将通过匿名回调函数取回的内容并入到当前DOM运行时环境。

同时继续修改,comm/ido.js 中的原来的 input2Search 函数,将新增的缓存input.value函数读取到进来,优先判断该值是否有用,如果有,则不再调用原来的select列表对象。

如此实现页面中运用 input2Search 的加速处理。

新增函数 lazyLoad:

//– lazy load long list, Wed Oct 14 09:08:51 CST 2015
function lazyLoad(myObj, myType, myUrl){
window.console.log(“lazyload is starting…. myurl:[“+myUrl+”] myobj:[“+myObj+”]”);
if(true){
//document.onreadystatechange = function(){
//window.onload = function(){
window.setTimeout(function(){
if(document.readyState == ‘complete’ || document.readyState == ‘interactive’){
sendNotice(true, ‘Lazy is loading in process….. myobj:[‘+myObj+’]’);
var gta = new GTAjax();
gta.set(‘targetarea’, ‘addareaextradiv’);
gta.set(“callback”, function(){
//window.alert(“getresult:[“+this+”]”);
var s = this;
var resultList = JSON.parse(s);
//var mySele = document.getElementById(resultList.thefield);
console.log(“thefield:[“+resultList.thefield+”] “+(new Date()));
var optionList = {};
for(var i=0;i<resultList.result_list.length;i++){
var aresult = resultList.result_list[i];
//mySele.options[i] = new Option(aresult.sitename+'(‘+aresult.id+’)’,aresult.id, true,issel=false);
optionList[aresult.id] = aresult.sitename;

}
var myOptionList = document.getElementById(resultList.thefield+’_optionlist’);
myOptionList.value = JSON.stringify(optionList);

console.log(“thefield:[“+resultList.thefield+”] completed……”+(new Date()));
//console.log(JSON.stringify(myOptionList.value));

sendNotice(true, ‘Lazy Load is done successfully….. myobj:[‘+myObj+’]’);

});
gta.get(myUrl);
}
else{
sendNotice(false, ‘Lazy Loading is waiting…..’);
}
}, 3*1000);

}

}

涉及到的其他内容:

1. 匿名函数传参数的问题
JavaScript中匿名函数传参数是无法直接进行的,需要借助bind的机制,但测试未成功。实测的结果时,在第一层匿名函数,也即当前运行时环境中,首层设定匿名函数,可以直接调用其外部的变量,无需传递或声明;而二层匿名函数,也即在匿名函数中再设置一层匿名函数,则在其中无法直接使用其外部的变量。

2. JSON
借助 -GTAjax,设定了将当前页面异步读取一个接口文件,extra/readtblfield.php ,两者通过JSON格式的文件进行数据交换。JSON在 -PHP 和 JavaScript 中的内置函数可以参考 -R/Y2Sx1 .

3. 局限
目前的优化,说针对的列表数据量级在60K左右,如果数据集继续增加到100K,或者仍可以使用,但数据集增加到1M时,人需要考虑再次优化,再次优化的方向时,随着用户的输入即时调用后台查询接口,即时返回数据,然后再生成待选列表供用户点选,如同现在的搜索引擎的搜索提示一样。
之所以在这一步优化成将备选数据集一次性读取到前端,是因为这样在后续的处理中会更快,数据流量会更小,也减少了通信次数;这种优化主要针对有限数据集。

 

发表在 -gMIS, 编程技术, 计算机技术 | 标签为 , , | 留下评论

UfqiFina有福金融UfqiWork有福工坊UfqiNews有福常在Google Books

-自然域名NatureDNS优化及迎双节发码

naturedns-logo-201406

1. 为兼容在苹果Mac Safari/Chrome中在中文输入状态下,- (dash, hyphen)会被转为全角的长“—”,服务器后台转换程序做了处理,发现字符:

a. 长的“—”
b. \xe2\x80\x93
c. \xef\xbc\x8d

则自动转换为“-” (dash, hyphen, punctuation mark), 如此则在苹果Mac系统中可以顺利使用-自然域名NatureDNS。

2. 为迎中国的双节假期(中秋节、国庆节),特发布如下-自然域名NatureDNS注册码 5 枚:

31dbCkrCr45KN0FVB7Vdbdb4
31V5KDoX3CjmAwgpPLe5bf95
31la101CwRnQDJgH8yq07083
31t1OQHIBDF3kxsatF2a61f0
31VRUwIUyOBgxl5NANj3743c

3. 为庆祝小有同学会说两个字的中文词,特发布如下-自然域名NatureDNS注册码 5 枚:

31ccwxnU12E1ARpVHCw5709a
316NvSE97pOz3Da1KW7c9e75
31xwZL9bRG4aUpTcFVdad8ec
31wLl3GaiSidu4eYwgE74f39
31DU86iiRwuagpbEzv1c8e14

(对这家伙来说,真有难度,但有时候发挥的相当好,比如他妈妈教他说,爸爸是坏蛋,他就会,爸爸,坏蛋。然后我回说,不允许这样说,我是你爹,他就会跟着说,你爹,爹….)

发表在 -NatureDNS/-自然域名 | 标签为 , , | 留下评论

UfqiFina有福金融UfqiWork有福工坊UfqiNews有福常在Google Books

adplace wrong with windows+chrome

在windows的chrome中,如下adplace下面的select列表显示不出来。

<fieldset style=”border-color:#5f8ac5;border: 1px solid #5f8ac5;”><legend><h4>\xe5\xa2\x9e\xe4\xbf\xae\xe8\xae\xb0\xe5\xbd\x95</h4></legend><form id=”gtbl_add_form” name=”gtbl_add_form” method=”post” action=”jdo.php?tbl=advtbl&tit=\xe5\xb9\xbf\xe5\x91\x8a\xe5\x8f\x8a\xe4\xbf\x83\xe9\x94\x80&db=&act=list-addform” ><table align=”center” width=”98%” cellspacing=”0″ cellpadding=”0″ border=”0px”><tr><td width=”11%”>&nbsp;</td>\r\n <td width=”22%”>&nbsp;</td>\r\n <!– <td width=”2%”>&nbsp;</td> –>\r\n <td width=”11%”>&nbsp;</td>\r\n <td width=”22%”>&nbsp;</td>\r\n <td width=”11%”>&nbsp;</td>\r\n <td width=”22%”>&nbsp;</td>\r\n </tr>

<tr height=”30px” valign=”middle” onmouseover=”javascript:this.style.backgroundColor=’#afc4e2′;” onmouseout=”javascript:this.style.backgroundColor=”;”>
<td nowrap >\xe5\x90\x8d\xe7\xa7\xb0: </td><td><input type=”text” id=”title” name=”title” class=”noneinput wideinput” value=”” /> <br/> </td><td nowrap>\xe5\xb9\xbf\xe5\x91\x8a\xe4\xbd\x8d:&nbsp;</td>

<td>
<select id=”adplace” name=”adplace” >
<option value=””>-\xe9\x80\x89\xe6\x8b\xa9-</option>
<option value=”0″>\xe6\xad\xa3\xe5\xb8\xb8(0)</option>\n
<option value=”1″>\xe5\xb7\xb2\xe7\xbb\x93\xe6\x9d\x9f(1)</option>\n
</select> <br/>

<input type=”hidden” id=”adplace_select_orig” name=”adplace_select_orig” value=”” />

</td>

<td nowrap>\xe5\x9b\xbe\xe7\x89\x87:</td><td><input type=”file” id=”imagepath” name=”imagepath” size=”20″ class=”noneinput wideinput” /> <input type=”hidden” name=”imagepath_orig” value=”” /> <br/> </td><td> <script>document.getElementById(‘gtbl_add_form’).enctype=’multipart/form-data’;</script> </td></tr><tr></tr><tr height=”30px” valign=”middle” onmouseover=”javascript:this.style.backgroundColor=’#afc4e2′;” onmouseout=”javascript:this.style.backgroundColor=”;”><td nowrap >\xe9\x93\xbe\xe6\x8e\xa5: </td><td><input type=”text” id=”link” name=”link” class=”noneinput wideinput” value=”” /> <br/> </td>

<td nowrap>\xe7\x8a\xb6\xe6\x80\x81:&nbsp;</td>
<td>
<select id=”state” name=”state” >
<option value=””>-\xe9\x80\x89\xe6\x8b\xa9-</option>
<option value=”0″>\xe6\xad\xa3\xe5\xb8\xb8(0)</option>\n
<option value=”1″>\xe5\xb7\xb2\xe7\xbb\x93\xe6\x9d\x9f(1)</option>\n
</select> <br/>

<input type=”hidden” id=”state_select_orig” name=”state_select_orig” value=”” />

</td>

<tr height=”10px”><td style=”border-top: 1px dotted #cccccc; vertical-align:middle;” colspan=”6″> </td></tr><tr><td colspan=”6″ align=”center”><input type=”submit” name=”addsub” id=”addsub” value=”\xe9\x80\x92\xe4\xba\xa4″ onclick=”javascript:doActionEx(this.form.name,’actarea’);” /> \n<input type=”hidden” id=”id” name=”id” value=””/>\n \n<input type=”button” name=”cancelbtn” value=”\xe5\x8f\x96\xe6\xb6\x88″ onclick=”javascript:switchArea(‘contentarea_outer’,’off’);” /> </td></tr></table> </form> </fieldset> <br/>

诡异的是,如果将 adplace 换成 myadlocation 则相应的select就显示正常了。

========================== 找到原因了 =======================

Chrome的浏览器里安装了广告拦截插件 AdBlock Plus,这个家伙估计是侦测到 ad 或者 adplace 然后就不让显示了!

坑!

 

发表在 编程技术, 计算机技术 | 留下评论

护发素发膜正品修复干枯免洗家用护发补水顺滑女士发热焗油膏捐助乌克兰Help Ukraine老板选址BossXuanzhiUfqiFina有福金融

-naturedns 自然域名优化

改进自然域名对输入常见网址(http,ftp)作为检索、匹配条件时,直接进行跳转。

涉及到的代码逻辑有:

if(startsWith($q, “http”) || startsWith($q, ‘ftp’){
$targetUrl = urldecode($q);
}

处理的类似请求是:

“GET /naturedns/search?f=opense&q=http%3A%2F%2Fnews.xinhuanet.com%2Fziliao%2Fxhsld%2F2015-06%2F15%2Fc_1115643592.htm+&ie=UTF-8& HTTP/1.1”

这种情形发生在 MSIE、Chrome、Firefox或者Safari 的浏览器中,当没有对所呈现的链接文本加超级链接时,使用右键呼叫 -NatureDNS 进行搜索时,如下图所示

chrome浏览器中使用-url4p.201405

浏览器中使用-url4p.201405

发表在 -NatureDNS/-自然域名, 计算机技术 | 标签为 , | 留下评论

捐助乌克兰Help Ukraine老板选址BossXuanzhiUfqiFina有福金融UfqiWork有福工坊

正则优化一例

正则表达式regexp写法,优化例子:regexp优化-201507

refer: -R/52Sv

发表在 编程技术, 计算机技术 | 留下评论

得力彩色铅笔油性彩铅学生用专业手绘48色水溶性彩铅笔24色画画笔36色小学生安全无毒水溶款绘画素描儿童铅笔医用外科口罩一次性医疗专用口罩防尘透气成人三层防护透气医生床上电脑桌大学生宿舍上铺懒人可折叠小桌子家用寝室简约学习书桌京东制作

创业法则

创业,本就是九死一生。但目前社会上你所能看到的都是九生一死,看到的都是乔布斯、雷布斯、马布斯、周布斯、一个个成功的IPO都把企业家光环的一面无限放大,因此掩盖了大街小巷每一天都在破产都在倒闭都在痛哭的失败的人。

因此,你的眼里,才是满眼成功,并用这类与你无关的成功来激励自己,这才是最可怕也是最可悲的。

由此而成功跟你无关,要么是能力,要么是学识经历,别人能做好的那些事情,到你手上未必能做好,换句话说,如果现在把阿里巴巴交给你,市值接近千亿了,到你手上,你可能一个月就会把它玩破产。我再次提醒——有些成功,跟你无关。

创业,其实不是为了发财,而是为了要去做一个事情,是一种生命体验的过程,而不是成功与否的过程,是信任与格局的筹码。

创业,首先能想到失败后会怎么样的,成事的机会反而更大。

创业,从未思考过失败的创业者,基本上,前面没多远就是失败粪坑在等他了。

如果你把创业看成一个灵感工程,那么恭喜你,你可以光荣地去死了。而如果你把创业看成一个系统工程,它不是以发财为导向,而是以自己的生命升华“去完成一个事情”为导向,那么这样的创业者就有点意思了。

创业,一个人很难成事。因此,必须合伙。

 但是纵观整个世界文明史,所有形态的合伙(黑社会也好、革命同盟也好、古惑仔也好、政治家也好),到最后,基本上没有一个善始善终的,更惨烈的是,合伙打天下成功之后,在分果果、排座座的这个环节,就发生了各种父子反目、夫妻结仇、兄弟残杀的血淋淋的事件。

其实你细看二十四史,里面讲的就是各种合伙失败之后的自相残杀和革命成功之后相互杀戮的故事,这故事如今还在延续。

人,在打江山的时候,都可以归到人的这类别里;人,在分江山的时候,一定要分到畜生这类别里人,两看。好的时候看一眼,不好的时候看一眼。然后就能分解出人类和畜类了。

人,一旦脱离规则,那么它就开始奔向畜生的道路了。

人,在规则之内的人才可以称之为人,也始终是人。其余,不是。

 

假如你们是三五八个人合伙——

合伙创业天规第一条——《投名状法则》

1,出钱规则(各出多少?差额如何平衡?股权如何划分?)

2,出力规则(如何分工,谁干什么?什么责任?)

3,赚钱规则(赚谁的钱?用什么去赚?怎么个赚法?)

4,执行规则(谁去执行?怎么执行?什么责任?)

5,领导规则(谁领导?资本领导?技术领导?销售领导?当赚钱的人和出钱的人不是同一人时,谁当领导?领导权多大?集体投票权多大?)

6,罢免规则(领导出问题怎么办?战略出问题怎么办?哪些事件发生才可以启动罢免程序?)

7,退出规则(为不把矛盾扩大化,如何退出?原股退出还是议价退出?损耗成本计算标准?)

(以上这段,江湖上称之为《大圈帮合伙作案共事章程》)

 

 合伙创业天规第二条——《翻脸法则》

(提议、动议、附议、反对、弃权、表决的议事规则)

1,战术失误处理规则(是换将还是换方法?)

2,战略失误处理规则(是换帅还是换战略?)

3,观点冲突处理规则(是投票平息还是专家平息?)

4,人格冲突处理规则(是打架解决还是司法仲裁?)

5,发生矛盾处理规则(是控制情绪还是找出问题?)

6,矛盾升级处理规则(是团伙打架还是独立决斗?)

7,撕破脸皮处理规则(是双双驱逐还是集体散伙?)

8,相互动刀处理规则(快报案!)

(以上为《翻脸前的议事规则》详细文件参考《罗伯特议事规则》)

合伙创业天规第三条——《绝不合伙法则》

1,有诈骗经历的人不能与其合伙;

2,说话不靠谱的人不能与其合伙;

3,对父母不孝的人不能与其合伙;

4,言语之间眉飞色舞的人不能与其合伙;

5,参与帮派势力的人不与其合伙;

6,太讲哥们义气的人不与其合伙;

7,经常挑战社会规则和公共道德的人不与其合伙;

8,斤斤计较的人不能与其合伙;

9,喜欢抱怨的人不能与其合伙;

10,喜欢多嘴播弄是非的人不要与其合伙;

11,善于发现问题但从不主动解决问题的人不要与其合伙;

12,推诿、善辩、否认的人不要与其合伙;

13,有严重的极端政治倾向的人,不要与其合伙(玩什么都别玩政治,做生意,没人能玩得起政治)。

(以上为《缘分考察器》,也可以用于相亲找男人环境)

 

合伙创业天规第四条——《必须有一个法则》

1,最好有个年纪偏大但未必有钱的人;

2,最好有个思维活跃敢于突破的人;

3,最好有个沉稳扎实善于刹车的人;

4,最好有个勤俭节约善计成本的人;

5,最好有个口才不错说话靠谱的人;

6,最好有一个善于玩社会化网络的人;

7,最好有一个有三年销售经验的人;

(这不仅是你创业时需要找到的人,也是你生命里应该找到的人)

 

合伙创业天规第五条——《分赃法则》

1,以出资优先的分红规则;

2,以技术优先的分红规则;

3,以出力优先的分红规则;

4,以卖命优先的分红规则;

5,以年度利润的百分之五十分红,另五十做发展基金;

6,员工之间的分红规则;

7,员工之间的期权规则;

8,员工之间的奖励规则;

9,不可分资金的公益化处理规则;

(以上文件为《做贼也要学会分赃》)

 

合伙创业天规第六条——《散伙法则》

1,以兄弟名义合伙的散伙法则(烧掉烂帐,重头来过);

2,以哥们名义合伙的散伙法则(一顿痛哭,各找各家);

3,以朋友名义合伙的散伙法则(一杯老酒,各奔东西);

4,以生意名义合伙的散伙法则(一纸判决,一拍两散)。

(以上参见著名电影《十一罗汉》)

合伙创业天规第七条——《管理法则》

1,别打脸冲胖子,能苦则苦,办公条件先不讲究,节约成本;

2,能自己干掉的活就不要请人,请人更花钱;

3,必须要请的人,就要不惜代价一定请到;

4,先别像傻逼一样地追求品牌,而是要追求市场;

5,不要一上手就做一个系列产品,最后把自己死在系列里面。

6,一定是主打一款产品,单点突破,野蛮生长;

7,大多的时候,所有的领导都是干活的,必须冲到第一线。

8,不要一点小权在手,就摆出个领导的二逼架子,没人屌你。

9,用最快的速度给公司做成一个市场标签,让用户记住。

10,尘埃初定的时候,抽空给自己歇一歇,大家聊聊问题;

11,不差钱的时候,把合伙人中最笨的那个傻逼送去学习;

12,成功了不要志得意满,而是事事警惕,市场随时会让你死去。

13,公司有点样子的时候,快速融资快速做大;

14,融资的时候不要过于纠结股份而错失发展良机;

15,玩资本比玩产品要轻松一点;

16,玩平台比玩资本又更牛逼一点;

17,能做成平台就做成平台而不要迷恋自己的“产品”。

18,每一个资本家能活到最后的都不是傻子。

发表在 社会生活 | 留下评论

老板选址BossXuanzhiUfqiFina有福金融UfqiWork有福工坊UfqiNews有福常在