November 24, 2010
Memcache mutex设计模式
"周六的S2 Web 2.0技术沙龙上介绍了memcache中使用mutex场景(文后要演讲稿),有网友对详情感兴趣,简单介绍如下。\n场景 Mutex主要用于有大量并发访问并存在cache过期的场合,如\n首页top 10, 由数据库加载到memcache缓存n分钟 微博中名人的content cache, 一旦不存在会大量请求不能命中并加载数据库 需要执行多个IO操作生成的数据存在cache中, 比如查询db多次 问题 在大并发的场合,当cache失效时,大量并发同时取不到cache,会同一瞬间去访问db并回设cache,可能会给系统带来潜在的超负荷风险。我们曾经在线上系统出现过类似故障。\n解决方法 方法一 在load db之前先add一个mutex key, mutex key add成功之后再去做加载db, 如果add失败则sleep之后重试读取原cache数据。为了防止死锁,mutex key也需要设置过期时间。伪代码如下 (注:下文伪代码仅供了解思路,可能存在bug,欢迎随时指出。)\nif (memcache.get(key) == null) { // 3 min …"
November 24, 2010
Twitter系统运维经验
"最近看到的另外一个介绍Twitter技术的视频[Slides] [Video (GFWed)],这是Twitter的John Adams在Velocity 2009的一个演讲,主要介绍了Twitter在系统运维方面一些经验。 本文大部分整理的观点都在Twitter(@xmpp)上发过,这里全部整理出来并补充完整。\nTwitter没有自己的硬件,都是由NTTA来提供,同时NTTA负责硬件相关的网络、带宽、负载均衡等业务,Twitter operations team只关注核心的业务,包括Performance,Availability,Capacity Planning容量规划,配置管理等,这个可能跟国内一般的互联网公司有所区别。\n1. 运维经验 * Metrics Twitter的监控后台几乎都是图表(critical metrics),类似驾驶室的转速表,时速表,让操作者可以迅速的了解系统当前的运作状态。联想到我们做的类似监控后台,数据很多,但往往还需要浏览者做二次分析判断,像这样满屏都是图表的方法做得还不够,可以学习下这方面经验。 据John介绍可以从图表上看到系统的瓶颈-系统最弱 …"
November 24, 2010
是用js 实现 图片“另存为” 最后怎样实现的? (FireFox没有测试过)
"使用JS实现单击连接保存图片 2种形式都可以 第一种: \u0026lt;script\u0026gt; function SaveAs5(imgURL) ...{ var oPop = window.open(imgURL,\u0026#34;\u0026#34;,\u0026#34;width=1, height=1, top=5000, left=5000\u0026#34;); for(; oPop.document.readyState != \u0026#34;complete\u0026#34;; ) ...{ if (oPop.document.readyState == \u0026#34;complete\u0026#34;)break; } oPop.document.execCommand(\u0026#34;SaveAs\u0026#34;); oPop.close(); } \u0026lt;/script\u0026gt; \u0026lt;img src=\u0026#34;t_screenshot_17616.jpg\u0026#34; id=\u0026#34;DemoImg\u0026#34; border=\u0026#34;0\u0026#34; onclick=\u0026#34;SaveAs5(this.src)\u0026#34;\u0026gt; 第二种: …"
November 24, 2010
JS打开图片另存为对话框
"New Document\nfunction downLoadImage(imagePathURL){\n//如果中间IFRAME不存在,则添加 if(!document.getElementById(“_SAVEASIMAGE_TEMP_FRAME”)) jQuery(‘ width=”0″ height=”0″ src=”about:blank”\u0026gt;’).appendTo(“body”);\nif(document.all._SAVEASIMAGE_TEMP_FRAME.src!=imagePathURL){ //图片地址发生变化,加载图片 document.all._SAVEASIMAGE_TEMP_FRAME.src = imagePathURL; }else{ //图片地址没有变化,直接另存为 _doSaveAsImage(); } } function _doSaveAsImage(){ if(document.all._SAVEASIMAGE_TEMP_FRAME.src!=”about:blank”) …"
November 23, 2010
js里面如何获取网络地址的图片的高度和宽度 (变通办法)
"原图片是 :\n(function(){ var img=document.createElement(‘img’);//创建一个img元素 img.src=”http://gg.blueidea.com/2008/blueidea/flash2008.gif”;//指定src img.style.position=”absolute”;//防止正常的内容变形 img.style.visibility=’hidden’;//藏起来 var inj=document.getElementById(‘box’).appendChild(img);//插入到box中。当然插入到document.body也可以 alert(‘宽:’+inj.offsetWidth);//然后就可以通过 offset 取得宽和高了 alert(‘高:’+inj.offsetHeight); })();\n简单地说就是把图片放入一个自动伸缩的DIV中,然后获取DIV的宽和高!"
November 23, 2010
Allowed memory size of 8388608 bytes exhausted解决方法
"出现该错误的原因:\n是因为php页面消耗的最大内存默认是为 8M (在PHP的ini件里可以看到) ,如果文件太大 或图片太大 在读取的时候 会发生上述错误。\n解决办法:\n1,修改 php.ini 将memory_limit由 8M 改成 16M(或更大),重启apache服务\n2,在PHP 文件中 加入 ini_set(”memory_limit”,”100M”);\n注意:为了系统的其它资源的正常使用 请您不要将 memory_limit设置太大,其中-1为不限\n3,修改.htaccess 文档(前提是该目录支持.htaccess) 在文档中新增一句:php_value memory_limit 16M(或更大)"
November 22, 2010
6个最佳房地产 WordPress 主题
"WordPress 并不是一个简单的博客程序,它能干的事情非常多。如果你是一个地产中介,想通过互联网出售房子,那么你也可以通过 WordPress 来实现,是的,选择一个适合房地产的 WordPress 主题,就会让你事半功倍,并且现在网络上有非常多的和房地产相关的 WordPress 主题,并且还集成了房地产相关的功能(如位置,价格,大小,几房几厅,经纪人,代理等)。所以今天就给大家介绍下5个非常不错的房地产相关的 WordPress 主题。\n本文翻译自 14 Real Estate WordPress Themes,原文有 14 个房地产相关的 WordPress 主题,这里节选其中最好的 6 个。\n1. Estate (by Woothemes) Estate 是一个非常强大的,但是管理非常方便的适合房地产中介 WordPress 主题,这个主题使用了 WordPress 3.0 开始的自定义日志类型和自定义分类模式这些高级功能,使得在 WordPress 后台能够有个真正的“房地产”的功能,并且灵活的页面模板高级搜索功能,以及集成了 Google 地图,灵活的房地产图片管理,你 …"
November 22, 2010
延迟加载图片的 jQuery 插件:Lazy Load
"网站的速度非常重要,现在有很多网站优化的工具,如 Google 的 Page Speed,Yahoo 的 YSlow,对于网页图片,Yahoo 还提供 Smush.it 这个工具对图片进行批量压缩,但是对于图片非常多的网站,载入网页还是需要比较长的时间,这个时候我们可以使用 Lazy Load 这个 jQuery 插件来延迟加载图片。\nLazy loader 是一个延迟加载图片的 jQuery 插件,在一些图片非常多的网站中非常有用,在在浏览器可视区域外的图片不会被载入,直到用户将页面滚动到它们所在的位置才加载,这样对于含有很多图片的比 较长的网页来说,可以加载的更快,并且还能节省服务器带宽。\nLazy Loader 使用也非常简单,首先确保你的页面已经加载 jQuery Javascript 库,然后在加载 Lazy Load 的 Javascript 文件:\n\u0026lt;script src=\u0026#34;jquery.js\u0026#34; type=\u0026#34;text/javascript\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; \u0026lt;script …"
November 22, 2010
lighttpd启动,停止,重启命令
"“/etc/init.d/lighttpd start” “/etc/init.d/lighttpd stop” “/etc/init.d/lighttpd restart”"
November 21, 2010
用javascript 怎么判断图片是否加载完成呢
"用javascript 怎么判断图片是否加载完成呢?\nfunction loadImage(url){\nvar o= new Image();\no.src = url;\nif(o.complete){\nwindow.alert(‘图片加载完成:’+url);\n}else{\no.onload = function(){\nwindow.alert(‘图片加载完成:’+url);\n};\no.onerror = function(){\nwindow.alert(‘图片加载失败:’+url);\n};\n}\n}\n如果我要先把这一个图片加载完,之后才显示怎么处理呢.\nfunction showImage(url){ var o = document.createElement(\u0026#39;img\u0026#39;); o.src = url; document.body.appendChild(o); } function loadImage(url){ var o= new Image(); o.src = url; if(o.complete){ showImage(url); }else{ …"