分类: Uncategorized

  • https://yue.ma 页面秒开的点点滴滴 优化实战记

    https://yue.ma 是Global View全球视野资产配置服务,为众多的用户提供全球范围内的资产配置!优化项目的目标是秒开,即1秒内打开页面!未优化之前存在页面加载时间长,很多用户反馈慢!而服务器的负载很低,网络带宽不到10%,cpu\内存也都在10%以下。

    优化思路一: 以最快的速度打开页面,秒开是前提在网速正常的情况下,因此网络因素造成不秒开不在本次优化的范围内。将页面的所有数据加载行为去掉,纯静态资源的形式下查看所需的毫秒数,40毫秒,也就是优化的极限在40毫秒。但是优化也是有成本的,需要将页面数据加载拆分出来,在1秒的忍受时长里,将耗时上的数据行为拆出来。等页面加载完之后,异步请求加载。让人以最快的速度看到页面。

    优化思路二: 不经常变的数据使用localstorage直接存在浏览器的本地存储里,这样子,页面加载完之后,可以很快的呈现数据,在实时与体验速度上做了一下平衡。先呈现本地存储数据中的。再请求远程的,如果数据变了,则刷新本地存储与页面,如果数据未变,则无需做任何调整。这样子,客服不仅以最快的速度看到了页面,还以最快的速度看到了数据。

    优化思路三: 将服务器从静态资源服务中解脱出来,目前采用的方案是CDN,为了防止出现打广告的嫌疑,就不说产品名称了。从实施的效果上来讲,还是不错的。基本上服务器的带宽、资源使用都降了下来,CDN搞住了流量,而且本身的速度也由于CDN的节点多而方法得到了提升。如果不是特别有实力,感觉用第三方的CDN是不错的。省去了自己搭建CDN. 优化思路四: 服务器的内存多,直接将内存挂载成一个目录,将站点文件全部同步到这个特殊的内存目录,也就意思着所有的文件读取都在内存中完成。由于上传的图片在内存中,则会丢失,所以要写脚本同步。

    #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH file=”/www/wwwroot/memory.licaishi.app/index.php” if [ -f “$file” ] then echo “$file found.” else echo “$file not found.” echo “let’s recover memory files” cp -r /www/wwwroot/licaishi.app/. /www/wwwroot/memory.licaishi.app fi

    echo “—————————————————————————-” endDate=date +”%Y-%m-%d %H:%M:%S” echo “★[$endDate] Successful” echo “—————————————————————————-”

    图片同步至硬盘脚本

    #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH echo ‘同步图片’ cp -n /www/wwwroot/memory.licaishi.app/upload_file/. /www/wwwroot/licaishi.app/upload_file echo “—————————————————————————-” endDate=date +”%Y-%m-%d %H:%M:%S” echo “★[$endDate] Successful” echo “—————————————————————————-”

    从内存中运行站点文件的好处,响应比较稳定。

    经过优化之后,页面速度明显得到改善!

     

  • 微信支付扫码支付的两种模式区别与应用

    [caption id="attachment_1597" align="alignnone" width="584"]微信支付产品划分 微信支付产品划分[/caption]

    微信支付产品划分成了公众号支付、app支付 、扫码支付 、刷卡支付、微信买单,因为把支付细分的不要不要的。在这里主要介绍一下微信支付挚友支付的两咱模式区别与应用。因为是本人的小博客,所以,也不用官方的时序图来讲这两种模式的区别,喜欢看官方文档的可以直接访问官方的链接:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1

    模式一,简单的说是活码的,可以重用的。A客户扫完支付完,b客户还可以扫,还可以支付。模式二就不行,只能用一次。具体应用的话,可以理解为扫产品…..[先吃饭去~~再续]

    模式二,相对于模式一来讲,这个码是一次码,一个客户扫码支付完,这个码就死了,不能用了。

    部署好的测试:http://www.zuime.com/mpWxPayapi/example/native.php

    [caption id="attachment_1598" align="alignnone" width="444"]微信支付的两种模式 模式一 模式 二 微信支付的两种模式 模式一 模式 二[/caption]

  • 微信支付集成点滴(坑坑)

    微信支付集成相比支付宝集成来讲,还是坑多事多!微信支付、公众号、微信开放平台都有微信支付的入口,配置的事情让人一头雾水!建立了一个应用,开通了微信支付,配置的时候里面有个公众号的配置,这明明跟公众号没有关系,经过这两天的demo测试,发现,之前申请【醉么商城】的微信审核费算是多送了一份给腾讯!

    准确的来讲,微信支付、公众号、微信开放平台的应用,可以相互关联,因为每次审核需要300元RMB,所以这也没有进行什么测试,给人感觉好绕。公众号的审核,或许与开放平台的应用割裂开了。现在又有一个小程序。

    微信支付的坑坑之零:帐号乱七八糟的,各种平台各种帐号,还不通用

    公众号、微信支付、开放平台的APP关联一套帐号,不要公众号+微信支付、开放平台APP+微信支付,这样子会产生两套微信支付帐号,管理非常不方便,而且容易出现【眩晕】的代码感觉。

    微信支付的坑坑之一:长按二维码支付不能用,跟扫码支付两回事

    http://www.zuime.com/mpWxPayapi/example/native.php

    可以访问本人的demo感受一下。如果用户在微信里打开了界面,微信支付是无法呼出的。长按二维码之后,微信提示不支持长按二维码支付。这给公众号支付腾了空间,给H5支付腾了空间。有的时候,控制权在他人手上,他人就可以玩着花样当【产品】!换一个姿势一个产品~~

    看看微信支付的产品线:扫码支付、公众号支付、APP支付,H5支付,申请了公众号支付,自动带有扫码支付;申请了APP支付,自动带了扫码支付,但是公众号支付与APP支付还不是一回事!崩溃了吧!!主体过期没有再认证的话,扫码支付还可以用,但是公众号支付(js呼出微信支付功能又没有!因为openid无法直接拿到~~通过回发信息绑定绕一下也是能拿到openid,只是会给客户增加一个绑定环节,这300RMB感觉还是不要省)!

    微信支付的坑坑之二:demo代码坑.net,php的demo就没有此坑

    cert文件需要在vs属性中改成复制到生成目录

    默认不用的代理ip与端口没有去掉

    引用 的dll放在了生成目录bin里,一清理整个项目就的引用就黄掉了。

    微信支付的坑坑之三:扫码支付状态之页面无回调机制

    因此整个码就是自己的系统调接口生成好,用户扫码后,网页得不到主动通知。支付成功与否的状态,需要通过异步不断的向后台请求支付结果,才能做出响应!不然,整个页面就是个SB一样一动不动的。相对于支付宝支付来说,生成码,引导客户支付都是支付宝完成的,支付完之后,支付宝有回调通知。微信支付这么一搞,生成码不管,状态结果还要自己想办法去轮出来。我也是醉了!

    本想突破一下扫码支付的限制,试了试生成的链接,直接长按二维码之后,微信是有无权限的提示,不过,直接在聊天窗口里访问  weixin://wxpay/bizpayurl?pr=****,还是可以支付的,这个在与公众号有互动的情况下到是可以生成图文支付链接,只是感觉体验上很别扭。还是得向微信交300元过路费。

    搭建的扫码demo如下

    http://www.zuime.com/mpWxPayapi/example/native.php

    输出了微信扫码的具体内容,也就是微信的预支付交易单链接。只有微信自己识别!为了让小伙伴能体验,扫码金额0.01元,随便体验吧!

    小结一下:如果打算用微信支付,认证完公众号,然后在公众号里申请微信支付,再申请开通H5权限就好了。 无需跑开放平台再申请一个APP+微信支付!毕竟H5跑在浏览器里,浏览器就如同一个第三方的APP,再回到微信,这300元,应该省吧如果要用到微信登陆,可能这300元还省不下来

     

     

  • 谷歌浏览器手机版的Display:none block问题Bug处理记录

    Google Chrome手机版v44,测试功能的时候发现菜单ul,li不显示,电脑上使用桌面版进行F12进行手机模拟机调试,一切都是正常的。Debug代码,尝试了多种方案!对比同事正常的页面,拿微信自带的浏览器试,没有此问题。但是作为要给客户使用的产品,还是想把问题解决掉。但是这个问题比较诡异!

    作为经验的驱使,我尝试,show,hide进行了重新绘制,结果Bug还是存在,Display:none之后再block的元素li还是出现莫名其妙的不显示。做为喜欢使用chrome的小伙伴,在桌面上完整调试后,还出现此问题,着实有些不爽。

    代码方案进行了调试,样式输出核对,都发现不了问题。最后,脑残式的发现,li的元素个数似乎有些少。估计号称【速度、性能】的浏览器工程师,可能会出现页面优化考虑,将不在显示区的不重绘!这完全是一直直觉的猜测!甚至自己都觉得可能、大概 、也许,不过试了这么多招,再试一下。

    增加几个占位的li之后,既然解决了问题。于是,接着强制将样式去掉,再将绑定上的click事件卸载,模拟成Very thing is normal的情况。整体上功能像是正常的。

    再以Chrome block bug做为关键词查询,发现,绝对定位这块,Chrome 40左右的版本是有类似的问题。目前使用的桌面版是59。自己的手机是44。

    没想到被谷歌坑到了~

  • 图书云-社会化图书馆招募公益小伙伴

    [caption id="attachment_1575" align="alignnone" width="640"]魔聚社会化图书馆 图书云社会化图书馆[/caption]

    图书云社会化图书馆意在建立一个分享闲置书籍的公益平台,做为一个公益平台,作为发起人希望找到若干有公益热情,喜欢圈粉的小伙伴!需要前后端研发工程师、视觉设计师、推广人员、视频制作人员等等!请加微信13439975582,说明来意。

    平台暂不考虑盈利,因此热情与兴趣最关键,请确认自己有业余时间并能全心全意投入进来再联系哈!因为这个公益项目并不能带给您经济收入~

    平台计划打造成每个人、每个企业分享闲置书籍的优先平台,将面临用户暴涨、访问剧增等常见的互联网系统问题,也是很有挑战的,期待小伙伴加入!

  • Java语言&C#设计者

    Java语言设计者 James Gosling

    C#首席设计师 Anders Hejlsberg