[email protected]功能改进

最近一直在进行ThinkSNS二次开发,ThinkSNS的@功能暂时没有像新浪微博一样输入@之后出现可能存在的用户提示,选中某用户之后自动补齐名字和加上空格。第一想法,直接抠代码,围脖首页源码里翻了半天,实在找不出来…转而求其次,网上搜代码,一开始的想法是用Autocomplete来实现,但试用后发现并不合适,Autocomplete从输入内容的第一个字符开始识别,然后对比后端数据查找是否有匹配的,所以到最后发现,只能自己重新发开一下了。 使用jQuery和php实现,思路如下,前端使用jQuery捕获输入事件,把所有的输入内容用正则进行匹配,标记从后端开始往前匹配@,中间只匹配中文字母和下划线,如此就能捕抓到用户@的keyword,每多输入一个字符,触发一次事件,进行一次新的捕抓,使用Ajax向后端发送捕抓到的keyword。后端接收到前端发送过来的keyword,在数据库中对所有关注的用户进行搜索,把找到的结果用json返回到前端来,前端根据接收到的数据作出用户提示,用户选择相应的@对象后,自动补齐加空格。主要jQuery代码如下,自动向后端发送keyword,等待返回json。 $(“#content_publish”).keyup(function(){ var reg = /@([a-zA-Z0-9_\u4e00-\u9fa5]+?)$/; var result = reg.exec($(this).attr(“value”)); $.getJSON(“{:U(‘home/User/keyword’)}”,{ ‘keyword’: result[1] },function(json) { if(json.status == “successful”) { $(“#previewer”).empty(); $(“#previewer”).append(“<ul>”); for (i in json.data) { $(“#previewer”).append(“<li>”+json.data[i].uname+”</li>”); } $(“#previewer”).append(“</ul>”); } else { $(“#previewer”).empty(); $(“#previewer”).append(“<ul>”); $(“#previewer”).append(“<li>”+result[1]+”</li>”); $(“#previewer”).append(“</ul>”); } }); }); $(“#previewer li”).live(“click”, function(){ var reg = /^(.*)@([a-zA-Z0-9_\u4e00-\u9fa5]+?)$/; var result = reg.exec($(“#content_publish”).attr(“value”)); $(“#content_publish”).empty(); $(“#previewer”).empty(); $(“#content_publish”).val(result[1]+”@”+$(this).text()+” “);…

Continue reading →

Hello, world!

作为第一篇文章,就用经典的“Hello, world!”为题吧。 VPS的购买过程相当烦,淘宝逛了几家店,挑了个价格适中的店,惯例性的问了些无关痛痒的问题,然后准备买的时候,卖家开始查户口一样问我买来干嘛用的,还禁止以下行为: 钓鱼网站、仿牌网站、黑客网站、黄色网站、私服网站、广告联盟 VOIP 以及一切违反中国及美国法律的网站 垃圾邮件,木马病毒 扫描IP,攻击其他服务器 疯狂挂QQ,挂ET语音聊天软件, 开启多个采集软件疯狂采集  等等滥用行为 然后我就比较老实的告诉了卖家,买来做个人blog和一个小的站点,可能会有少量的数据处理,结果卖家听到有数据处理一说,直接就54我的存在了…木有办法,只能继续找,第二家也聊合适了,最后准备买的时候才突然发现,这家的机器只支持win木有lin的,又悲剧收场,接陆续还问了不少,发现有淘宝有些VPS是国内个人租用国外主机自己开设的。最后找了个PhotonVPS的代理卖家才把空间定下来。 PhotonVPS比上次的BurstNet速度好很多,延时185左右,操作还算流畅。 [email protected]:www$ ping -c 5 lemontv.me PING lemontv.me (173.224.222.254) 56(84) bytes of data. 64 bytes from unassigned.psychz.net (173.224.222.254): icmp_req=1 ttl=54 time=185 ms 64 bytes from unassigned.psychz.net (173.224.222.254): icmp_req=2 ttl=54 time=185 ms 64 bytes from unassigned.psychz.net (173.224.222.254): icmp_req=3 ttl=54 time=186 ms 64 bytes from…

Continue reading →