window.onload = function(){
var ifr1 = document.createElement(‘iframe’);
ifr1.id = ‘ifr1’;
ifr1.name = ‘ifr1’;

// 注意,动态的创建的iframe中,iframe中的内容必须等到iframe加载完之后才能添加,所以需要表明iframe加载完成的函数,如下两个函数
// ifr1.onload    谷歌和火狐认识 ,
// ifr1.onreadystatechange    IE认识,但是IE会执行两次,分别是ifr1.readyState == ‘interactive’和ifr1.readyState == ‘complete’,所以要做一下判断.

if(window.navigator.userAgent.indexOf(‘IE’) == -1){           //非IE的浏览器
ifr1.onload = setIframe;
}else{
ifr1.onreadystatechange = function(){                    //IE浏览器
if(ifr1.readyState == ‘complete’){                       //判断状态
setIframe();
}
}
}

function setIframe(){
//  方法一:
//    var ifrDoc = window.frames[‘ifr1’].document;
//    var ifrBody = window.frames[‘ifr1’].document.body;

//  方法二:
var ifrDoc = ifr1.contentWindow.document;
var ifrBody = ifr1.contentWindow.document.body;

ifrBody.style.cssText = ‘border:1px splid #CCC; cursor:text;background:red; ‘;
var ifrDiv1 = ifrDoc.createElement(‘div’);        //注意是要在框架的document中创建div,而不是该页面的document中
ifrDiv1.innerHTML = ‘wocooo’;
ifrBody.appendChild(ifrDiv1);
}

document.body.appendChild(ifr1);        //放在最后
}

(function($){
$(document).ready(function(){
$(“#collectSuccessShow”).click(function(){
$(this).html(“Bitte warten…”).load(location.search + “&type=collectArticle&uid=” + $(“#uid”).val());
});
});
})(jQuery)

jquery如何为动态创建的节点绑定事件,看如下这个案例
$("#table").append("<a href='javascript:;' class='del'>删除</a>");
$(".del").click(function(){
   alert("获取到拉");
})
如上这段代码是不起作用的,如果希望以上这段代码能达到目的,写法如下:
$("#table").append("<a href='javascript:;' class='del'>删除</a>");
$(".del").live("click", function(){
	alert("获取到了"); 
});
以上都是jQuery1.7之前的版本,1.7之后live函数去掉了。
1.直接导入jquery-migrate:https://github.com/jquery/jquery-migrate/
,这样可以使用live,但不对性能做优化
2.$(document).delegate('a', 'click',function() { blah() });
3 你想不想试试on呢,on要先绑定父节点
$("body").on("click","a", function () { 
 $("#111").append("ok");
});

21、为什么单个item的大小被限制在1M byte之内?

简单的回答:因为内存分配器的算法就是这样的。

详细的回答:

1)Memcached的内存存储引擎,使用slabs来管理内存。内存被分成大小不等的slabs chunks(先分成大小相等的slabs,然后每个slab被分成大小相等chunks,不同slab的chunk大小

是不相等的)。chunk的大小依次从一个最小数开始,按某个因子增长,直到达到最大的可能值。如果最小值为400B,最大值是1MB,因子是1.20,各个slab的chunk的大小依次是:

slab1 – 400B;slab2 – 480B;slab3 – 576B …slab中chunk越大,它和前面的slab之间的间隙就越大。因此,最大值越大,内存利用率越低。Memcached必须为每个slab预先分配内

存,因此如果设置了较小的因子和较大的最大值,会需要为Memcached提供更多的内存。

2)不要尝试向memcached中存取很大的数据,例如把巨大的网页放到mencached中。因为将大数据load和unpack到内存中需要花费很长的时间,从而导致系统的性能反而不好。如果

确实需要存储大于1MB的数据,可以修改slabs.c:POWER_BLOCK的值,然后重新编译memcached;或者使用低效的malloc/free。另外,可以使用数据库、MogileFS等方案代替

Memcached系统。

Read More →

11、memcached的cache机制是怎样的?

Memcached主要的cache机制是LRU(最近最少用)算法+超时失效。当您存数据到memcached中,可以指定该数据在缓存中可以呆多久Which is forever, or some time in the

future。如果memcached的内存不够用了,过期的slabs会优先被替换,接着就轮到最老的未被使用的slabs。

12、memcached如何实现冗余机制?

不实现!Memcached应该是应用的缓存层,从设计本身来京就不带有任何冗余机制。如果一个memcached节点失去了所有数据,应该可以从数据源(比如数据库)再次获取到数据。应

用系统应该可以容忍节点的失效。如果担心节点失效会大大加重数据库的负担,那么可以采取一些办法。比如您可以增加更多的节点(来减少丢失一个节点的影响),热备节点(在其他节

点down了的时候接管IP)等等。

Read More →