想了解NoSQL精粹_中文完整版的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于如何准确理解nosql的含义?的相关问题,此外,我们还将为您介绍关于---sadalage/fowler、BB
想了解NoSQL精粹_中文完整版的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于如何准确理解nosql的含义?的相关问题,此外,我们还将为您介绍关于
- NoSQL精粹_中文完整版(如何准确理解nosql的含义?)
---sadalage/fowler - BBS(php & mysql)完整版(三)
- BBS(php & mysql)完整版(五)
- BBS(php & mysql)完整版(六)
NoSQL精粹_中文完整版(如何准确理解nosql的含义?)
---sadalage/fowler
主要讲了nosql各个框架的优缺点,特别与RDBMS做了比较,简略说明了哪些东西适合哪个框架以及nosql的ACID问题
第一章
关系型数据库确实提供了很多好的机制,在持久化和控制并发以及事务上有很好的处理但是从根本的角度,关系模型和内存中的数据结构(键值对)生来就不匹配,或者称为"阻抗失谐".虽然后期出现了ORM框架来改善这种阻抗失谐,但是高并发查询/修改多关系的表时,就遇到了数据库的瓶颈.此时nosql就能改善这个问题(当然要基于良好的框架选择和优良的"存储模式"),特别是在集群中,nosql更好
第二章
面向关系和面向聚合.在集群中,key是采集数据时所需节点数降至最小,nosql在此时就非常强大了,因为可以把聚合包含的信息弄大一点,包含很多东西(具体看业务需求).键值数据模型(redis)查询时获取整个聚合,文档数据模型(MongoDB)可以只获取部分聚合,还可以创建聚合内容的索引.为保证事务,最好以聚合为最小数据单位操作.所以如果数据交互大多在同一聚合内执行的,可以用面向聚合的数据库(nosql大多都是).
第三章
物化视图/映射化简,就像索引一样,预先准备好业务上要查询的数据,执行时直接拿.nosql这点上比rdbms好,因为它已经持久化了一份.面向聚合的数据库在处理聚合之间的关系时,显得有点棘手.
第六章
不用事务,用版本戳代替,实现离线的并发实现,很好的解决了锁带来的性能问题.
第八章
键值数据库适合存放 会话信息 用户配置信息 购物车数据.不适合数据间关系,含有多项关键操作的事务.查询键值对的某部分值来搜寻关键字(可用lucene等)
nosql目前还是属于年轻的东西,如果目前能忍受的情况下,尽量用RDBMS,因为20多年的积累,相关问题肯定有专家的解决方案
BBS(php & mysql)完整版(三)
//此页面为php3.php<?
include "signup/mysql.inc";
switch($part){
case "1" :$table="bbs_php";break;
case "2" :$table="bbs_mysql";break;
case "3" :$table="bbs_html";break;
case "4" :$table="bbs_js";
}
//echo $part;
?>
<html>
<head>
<title>xiaoyang</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="JavaScript1.2" src="js/menu_comment.js"></script>
<script language="JavaScript1.2" src="js/fw_menu.js"></script>
<script language="JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
// -->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div id="Layer1">
<script language="JavaScript1.2">fwLoadMenus();</script></div>
<div id="Layer2">
<hr color="#ff9999">
</div>
<div id="Layer3"></div>
<div id="Layer4"></div>
<div id="Layer5">
<table width="100%" border="0" cellspacing="1" cellpadding="0" height="20">
<tr>
<td width="10%">
<div align="center"><font color="#CC33CC" size="2">人气</font></div>
</td>
<td width="38%">
<div align="center"><font color="#CC33CC" size="2">文章题目</font></div>
</td>
<td width="26%">
<div align="center"><font size="2" color="#CC33CC">作者</font></div>
</td>
<td width="26%">
<div align="center"><font color="#CC33CC" size="2">日期</font></div>
</td>
</tr>
<?
$sql="select * from ".$table." order by row DESC";
$result=mysql_query($sql)or die(mysql_error());
$row1=mysql_num_rows($result);
$row_max_page=12; //分页计算
$page=ceil($row1/$row_max_page);
$left_row=$row1-$p*$row_max_page;
$pre_left_row=$left_row+12;
$start_row=$left_row+$row_max_page+1;
if($left_row<=0)
{
$start_row=$pre_left_row+1;
$left_row=0;
}
$sql="select * from ".$table." where row<''$start_row'' and row>''$left_row'' order by row DESC";
$result=mysql_query($sql)or die(mysql_error());
while($row=mysql_fetch_array($result)){
static $i=0;
$i++;
if($i%2)
$color="CCCCFF";
else $color="FFCCFF";
echo "<tr>";
echo " <td width=10% bgcolor=#".$color."> ";
echo " <div align=center><font size=2 color=#3333FF>".$row["number"]."</font></div>";
echo " </td>";
echo " <td width=38% bgcolor=#".$color."> ";
echo " <div align=center><font size=2 color=#3333FF><a href=''look.php?id=".$row["id"]."&&table=".$table."''>".$row["title"]."</a></font></div>";
echo " </td>";
echo " <td width=26% bgcolor=#".$color."> ";
echo " <div align=center><font size=2 color=#3333FF>".$row["userid"]."</font></div>";
echo " </td>";
echo " <td width=26% bgcolor=#".$color."> ";
echo " <div align=center><font size=2 color=#3333FF>".$row["date1"]."</font></div>";
echo " </td> </tr>";
}
echo"</table>";
echo "<BR><div align=center><table><tr><td><FONT SIZE=2 >";
for($i=1;$i<=$page;$i++)
{
echo "<a href=''".$PHP_SELF."?p=".$i."&&table=".$table."''>[".$i."]</a> ";
}
?>
</FONT></td></tr>
</table></div>
</div>
<div id="Layer6"></div>
<div id="Layer7">
<a href="say.php?table=<?echo $table ;?>" target="_self" onMouseOver="window.status='''';return true"><font size="2" color="#FF33FF">我要发言</font></a></div>
<p> </p>
<p> </p>
</body>
</html>
BBS(php & mysql)完整版(五)
//下面为menu_comment.jsfunction fwLoadMenus() {
if (window.fw_menu_0) return;
window.fw_menu_0 = new Menu("root",92,20,"Verdana, Arial, Helvetica, sans-serif",12,"#6666ff","#ffffff","#FF9999","#6666ff");
fw_menu_0.addMenuItem("Javascript","window.open(''left.php'', ''_self'');");
fw_menu_0.addMenuItem("Css快速入门","window.open(''left.php'', ''_self'');");
fw_menu_0.addMenuItem("JS在线资源","window.open(''left.php'', ''_self'');");
fw_menu_0.addMenuItem("相关论坛","window.open(''php3.php?part=4&&p=1'', ''_self'');");
fw_menu_0.fontWeight="solid";
fw_menu_0.hideOnMouseOut=true;
window.fw_menu_1 = new Menu("root",92,20,"Verdana, Arial, Helvetica, sans-serif",12,"#6666ff","#ffffff","#FF9999","#6666ff");
fw_menu_1.addMenuItem("Dreamwaver","window.open(''left.php'', ''_self'');");
fw_menu_1.addMenuItem("Firework","window.open(''left.php'', ''_self'');");
fw_menu_1.addMenuItem("Flash入门","window.open(''left.php'', ''_self'');");
fw_menu_1.addMenuItem("Html教程","window.open(''left.php'', ''_self'');");
fw_menu_1.addMenuItem("相关论坛","window.open(''php3.php?part=3&&p=1'', ''_self'');");
fw_menu_1.fontWeight="solid";
fw_menu_1.hideOnMouseOut=true;
window.fw_menu_2 = new Menu("root",86,20,"Verdana, Arial, Helvetica, sans-serif",12,"#6666ff","#ffffff","#FF9999","#6666ff");
fw_menu_2.addMenuItem("Mysql介绍","window.open(''mysql1.php'', ''_self'');");
fw_menu_2.addMenuItem("在线下载","window.open(''mysql2.php'', ''_self'');");
fw_menu_2.addMenuItem("学习教程","window.open(''mysql4a.php'', ''_self'');");
fw_menu_2.addMenuItem("Mysql论坛","window.open(''php3.php?part=2&&p=1'', ''_self'');");
fw_menu_2.fontWeight="solid";
fw_menu_2.hideOnMouseOut=true;
window.fw_menu_3 = new Menu("root",76,20,"Verdana, Arial, Helvetica, sans-serif",12,"#6666ff","#ffffff","#FF9999","#6666ff");
fw_menu_3.addMenuItem("安装配置","window.open(''php1.php?id1=1&&id2=1'', ''_self'');");
fw_menu_3.addMenuItem("程序代码","window.open(''php2.php?id1=2&&id2=1'', ''_self'');");
fw_menu_3.addMenuItem("学习教程","window.open(''php4.php?id1=4&&id2=1'', ''_self'');");
fw_menu_3.addMenuItem("PHP论坛","window.open(''php3.php?part=1&&p=1'', ''_self'');");
fw_menu_3.fontWeight="solid";
fw_menu_3.hideOnMouseOut=true;
fw_menu_3.writeMenus();
} // fwLoadMenus()
//下面是fw_menu.js
function Menu(label, mw, mh, fnt, fs, fclr, fhclr, bg, bgh) {
this.version = "990702 [Menu; menu.js]";
this.type = "Menu";
this.menuWidth = mw;
this.menuItemHeight = mh;
this.fontSize = fs||12;
this.fontWeight = "plain";
this.fontFamily = fnt||"arial,helvetica,verdana,sans-serif";
this.fontColor = fclr||"#000000";
this.fontColorHilite = fhclr||"#ffffff";
this.bgColor = "#555555";
this.menuBorder = 1;
this.menuItemBorder = 1;
this.menuItemBgColor = bg||"#cccccc";
this.menuLiteBgColor = "#ffffff";
this.menuBorderBgColor = "#777777";
this.menuHiliteBgColor = bgh||"#000084";
this.menuContainerBgColor = "#cccccc";
this.childMenuIcon = "arrows.gif";
this.items = new Array();
this.actions = new Array();
this.childMenus = new Array();
this.hideOnMouseOut = true;
this.addMenuItem = addMenuItem;
this.addMenuSeparator = addMenuSeparator;
this.writeMenus = writeMenus;
this.FW_showMenu = FW_showMenu;
this.onMenuItemOver = onMenuItemOver;
this.onMenuItemAction = onMenuItemAction;
this.hideMenu = hideMenu;
this.hideChildMenu = hideChildMenu;
if (!window.menus) window.menus = new Array();
this.label = label || "menuLabel" + window.menus.length;
window.menus[this.label] = this;
window.menus[window.menus.length] = this;
if (!window.activeMenus) window.activeMenus = new Array();
}
function addMenuItem(label, action) {
this.items[this.items.length] = label;
this.actions[this.actions.length] = action;
}
function addMenuSeparator() {
this.items[this.items.length] = "separator";
this.actions[this.actions.length] = "";
this.menuItemBorder = 0;
}
// For NS6.
function FIND(item) {
if (document.all) return(document.all[item]);
if (document.getElementById) return(document.getElementById(item));
return(false);
}
function writeMenus(container) {
if (window.triedToWriteMenus) return;
if (!container && document.layers) {
window.delayWriteMenus = this.writeMenus;
var timer = setTimeout(''delayWriteMenus()'', 250);
container = new Layer(100);
clearTimeout(timer);
} else if (document.all || document.hasChildNodes) {
document.writeln(''<SPAN ID="menuContainer"></SPAN>'');
container = FIND("menuContainer");
}
window.fwHideMenuTimer = null;
if (!container) return;
window.triedToWriteMenus = true;
container.isContainer = true;
container.menus = new Array();
for (var i=0; i<window.menus.length; i++)
container.menus[i] = window.menus[i];
window.menus.length = 0;
var countMenus = 0;
var countItems = 0;
var top = 0;
var content = '''';
var lrs = false;
var theStat = "";
var tsc = 0;
if (document.layers) lrs = true;
for (var i=0; i<container.menus.length; i++, countMenus++) {
var menu = container.menus[i];
if (menu.bgImageUp) {
menu.menuBorder = 0;
menu.menuItemBorder = 0;
}
if (lrs) {
var menuLayer = new Layer(100, container);
var lite = new Layer(100, menuLayer);
lite.top = menu.menuBorder;
lite.left = menu.menuBorder;
var body = new Layer(100, lite);
body.top = menu.menuBorder;
body.left = menu.menuBorder;
} else {
content += ''''+
''<DIV ID="menuLayer''+ countMenus +''">n''+
'' <DIV ID="menuLite''+ countMenus +''"onMouseOut="mouseoutMenu();">n''+
'' <DIV ID="menuFg''+ countMenus +''">n''+
'''';
}
var x=i;
for (var i=0; i<menu.items.length; i++) {
var item = menu.items[i];
var childMenu = false;
var defaultHeight = menu.fontSize+6;
var defaultIndent = menu.fontSize;
if (item.label) {
item = item.label;
childMenu = true;
}
menu.menuItemHeight = menu.menuItemHeight || defaultHeight;
menu.menuItemIndent = menu.menuItemIndent || defaultIndent;
var itemProps = ''font-family:'' + menu.fontFamily +'';font-weight:'' + menu.fontWeight + '';fontSize:'' + menu.fontSize + '';'';
if (menu.fontStyle) itemProps += ''font-style:'' + menu.fontStyle + '';'';
if (document.all)
itemProps += ''font-size:'' + menu.fontSize + '';" onMouseOver="onMenuItemOver(null,this);" onClick="onMenuItemAction(null,this);'';
else if (!document.layers) {
itemProps += ''font-size:'' + menu.fontSize + ''px;''; // zilla wants 12px.
}
var l;
if (lrs) {
l = new Layer(800,body);
}
var dTag = ''<DIV ID="menuItem''+ countItems +''">'';
var dClose = ''</DIV>''
if (menu.bgImageUp) {
menu.menuBorder = 0;
menu.menuItemBorder = 0;
dTag = ''<DIV ID="menuItem''+ countItems +''">'';
if (document.layers) {
dTag = ''<LAYER BACKGROUND="''+menu.bgImageUp+''" ID="menuItem''+ countItems +''" TOP="''+ (i * menu.menuItemHeight) +''">'';
dClose = ''</LAYER>'';
}
}
var textProps = ''position:absolute;left:'' + menu.menuItemIndent + '';top:1;'';
if (lrs) {
textProps +=itemProps;
dTag = "";
dClose = "";
}
var dText = ''<DIV ID="menuItemText''+ countItems +''">''+ item +'' </DIV>n<DIV ID="menuItemHilite''+ countItems +''">''+ item +'' </DIV>'';
if (item == "separator") {
content += ( dTag + ''<DIV ID="menuSeparator''+ countItems +''"></DIV>n<DIV ID="menuSeparatorLite''+ countItems +''"></DIV>n'' + dClose);
} else if (childMenu) {
content += ( dTag + dText + ''<DIV ID="childMenu''+ countItems +''"><IMG SRC="''+ menu.childMenuIcon +''"></DIV>n'' + dClose);
} else {
content += ( dTag + dText + dClose);
}
if (lrs) {
l.document.open("text/html");
l.document.writeln(content);
l.document.close();
content = '''';
theStat += "-";
tsc++;
if (tsc > 50) {
tsc = 0;
theStat = "";
}
status = theStat;
}
countItems++;
}
if (lrs) {
// focus layer
var focusItem = new Layer(100, body);
focusItem.visiblity="hidden";
focusItem.document.open("text/html");
focusItem.document.writeln(" ");
focusItem.document.close();
} else {
content += '' <DIV ID="focusItem''+ countMenus +''"onClick="onMenuItemAction(null,this);"> </DIV>n'';
content += '' </DIV>n </DIV>n</DIV>n'';
}
i=x;
}
if (document.layers) {
container.clip.width = window.innerWidth;
container.clip.height = window.innerHeight;
container.onmouseout = mouseoutMenu;
container.menuContainerBgColor = this.menuContainerBgColor;
for (var i=0; i<container.document.layers.length; i++) {
proto = container.menus[i];
var menu = container.document.layers[i];
container.menus[i].menuLayer = menu;
container.menus[i].menuLayer.Menu = container.menus[i];
container.menus[i].menuLayer.Menu.container = container;
var body = menu.document.layers[0].document.layers[0];
body.clip.width = proto.menuWidth || body.clip.width;
body.clip.height = proto.menuHeight || body.clip.height;
for (var n=0; n<body.document.layers.length-1; n++) {
var l = body.document.layers[n];
l.Menu = container.menus[i];
l.menuHiliteBgColor = proto.menuHiliteBgColor;
l.document.bgColor = proto.menuItemBgColor;
l.saveColor = proto.menuItemBgColor;
l.onmouseover = proto.onMenuItemOver;
l.onclick = proto.onMenuItemAction;
l.action = container.menus[i].actions[n];
l.focusItem = body.document.layers[body.document.layers.length-1];
l.clip.width = proto.menuWidth || body.clip.width + proto.menuItemIndent;
l.clip.height = proto.menuItemHeight || l.clip.height;
if (n>0) l.top = body.document.layers[n-1].top + body.document.layers[n-1].clip.height + proto.menuItemBorder;
l.hilite = l.document.layers[1];
if (proto.bgImageUp) l.background.src = proto.bgImageUp;
l.document.layers[1].isHilite = true;
if (l.document.layers[0].id.indexOf("menuSeparator") != -1) {
l.hilite = null;
l.clip.height -= l.clip.height / 2;
l.document.layers[0].document.bgColor = proto.bgColor;
l.document.layers[0].clip.width = l.clip.width -2;
l.document.layers[0].clip.height = 1;
l.document.layers[1].document.bgColor = proto.menuLiteBgColor;
l.document.layers[1].clip.width = l.clip.width -2;
l.document.layers[1].clip.height = 1;
l.document.layers[1].top = l.document.layers[0].top + 1;
} else if (l.document.layers.length > 2) {
l.childMenu = container.menus[i].items[n].menuLayer;
l.document.layers[2].left = l.clip.width -13;
l.document.layers[2].top = (l.clip.height / 2) -4;
l.document.layers[2].clip.left += 3;
l.Menu.childMenus[l.Menu.childMenus.length] = l.childMenu;
}
}
body.document.bgColor = proto.bgColor;
body.clip.width = l.clip.width +proto.menuBorder;
body.clip.height = l.top + l.clip.height
BBS(php & mysql)完整版(六)
+proto.menuBorder;var focusItem = body.document.layers[n];
focusItem.clip.width = body.clip.width;
focusItem.Menu = l.Menu;
focusItem.top = -30;
focusItem.captureEvents(Event.MOUSEDOWN);
focusItem.onmousedown = onMenuItemDown;
menu.document.bgColor = proto.menuBorderBgColor;
var lite = menu.document.layers[0];
lite.document.bgColor = proto.menuLiteBgColor;
lite.clip.width = body.clip.width +1;
lite.clip.height = body.clip.height +1;
menu.clip.width = body.clip.width + (proto.menuBorder * 3) ;
menu.clip.height = body.clip.height + (proto.menuBorder * 3);
}
} else {
if ((!document.all) && (container.hasChildNodes)) {
container.innerHTML=content;
} else {
container.document.open("text/html");
container.document.writeln(content);
container.document.close();
}
if (!FIND("menuLayer0")) return;
var menuCount = 0;
for (var x=0; x
container.menus[x].menuLayer = "menuLayer" + x;
menuLayer.Menu = container.menus[x];
menuLayer.Menu.container = "menuLayer" + x;
menuLayer.style.zIndex = 1;
var s = menuLayer.style;
s.top = s.pixelTop = -300;
s.left = s.pixelLeft = -300;
var menu = container.menus[x];
menu.menuItemWidth = menu.menuWidth || menu.menuIEWidth || 140;
menuLayer.style.backgroundColor = menu.menuBorderBgColor;
var top = 0;
for (var i=0; i
l.Menu = container.menus[x];
if (l.addEventListener) { // ns6
l.style.width = menu.menuItemWidth;
l.style.height = menu.menuItemHeight;
l.style.top = top;
l.addEventListener("mouseover", onMenuItemOver, false);
l.addEventListener("click", onMenuItemAction, false);
l.addEventListener("mouseout", mouseoutMenu, false);
} else { //ie
l.style.pixelWidth = menu.menuItemWidth;
l.style.pixelHeight = menu.menuItemHeight;
l.style.pixelTop = top;
}
top = top + menu.menuItemHeight+menu.menuItemBorder;
l.style.fontSize = menu.fontSize;
l.style.backgroundColor = menu.menuItemBgColor;
l.style.visibility = "inherit";
l.saveColor = menu.menuItemBgColor;
l.menuHiliteBgColor = menu.menuHiliteBgColor;
l.action = container.menus[x].actions[i];
l.hilite = FIND("menuItemHilite" + menuCount);
l.focusItem = FIND("focusItem" + x);
l.focusItem.style.pixelTop = l.focusItem.style.top = -30;
var childItem = FIND("childMenu" + menuCount);
if (childItem) {
l.childMenu = container.menus[x].items[i].menuLayer;
childItem.style.pixelLeft = childItem.style.left = menu.menuItemWidth -11;
childItem.style.pixelTop = childItem.style.top =(menu.menuItemHeight /2) -4;
//childItem.style.pixelWidth = 30 || 7;
//childItem.style.clip = "rect(0 7 7 3)";
l.Menu.childMenus[l.Menu.childMenus.length] = l.childMenu;
}
var sep = FIND("menuSeparator" + menuCount);
if (sep) {
sep.style.clip = "rect(0 " + (menu.menuItemWidth - 3) + " 1 0)";
sep.style.width = sep.style.pixelWidth = menu.menuItemWidth;
sep.style.backgroundColor = menu.bgColor;
sep = FIND("menuSeparatorLite" + menuCount);
sep.style.clip = "rect(1 " + (menu.menuItemWidth - 3) + " 2 0)";
sep.style.width = sep.style.pixelWidth = menu.menuItemWidth;
sep.style.backgroundColor = menu.menuLiteBgColor;
l.style.height = l.style.pixelHeight = menu.menuItemHeight/2;
l.isSeparator = true
top -= (menu.menuItemHeight - l.style.pixelHeight)
} else {
l.style.cursor = "hand"
}
menuCount++;
}
menu.menuHeight = top-1;
var lite = FIND("menuLite" + x);
var s = lite.style;
s.height = s.pixelHeight = menu.menuHeight +(menu.menuBorder * 2);
s.width = s.pixelWidth = menu.menuItemWidth + (menu.menuBorder * 2);
s.backgroundColor = menu.menuLiteBgColor;
var body = FIND("menuFg" + x);
s = body.style;
s.height = s.pixelHeight = menu.menuHeight + menu.menuBorder;
s.width = s.pixelWidth = menu.menuItemWidth + menu.menuBorder;
s.backgroundColor = menu.bgColor;
s = menuLayer.style;
s.width = s.pixelWidth = menu.menuItemWidth + (menu.menuBorder * 4);
s.height = s.pixelHeight = menu.menuHeight+(menu.menuBorder*4);
}
}
if (document.captureEvents) {
document.captureEvents(Event.MOUSEUP);
}
if (document.addEventListener) {
document.addEventListener("mouseup", onMenuItemOver, false);
}
if (document.layers && window.innerWidth) {
window.onresize = NS4resize;
window.NS4sIW = window.innerWidth;
window.NS4sIH = window.innerHeight;
}
document.onmouseup = mouseupMenu;
window.fwWroteMenu = true;
status = "";
}
function NS4resize() {
if (NS4sIW NS4sIW > window.innerWidth ||
NS4sIH > window.innerHeight ||
NS4sIH {
window.location.reload();
}
}
function onMenuItemOver(e, l) {
FW_clearTimeout();
l = l || this;
a = window.ActiveMenuItem;
if (document.layers) {
if (a) {
a.document.bgColor = a.saveColor;
if (a.hilite) a.hilite.visibility = "hidden";
if (a.Menu.bgImageOver) {
a.background.src = a.Menu.bgImageUp;
}
a.focusItem.top = -100;
a.clicked = false;
}
if (l.hilite) {
l.document.bgColor = l.menuHiliteBgColor;
l.zIndex = 1;
l.hilite.visibility = "inherit";
l.hilite.zIndex = 2;
l.document.layers[1].zIndex = 1;
l.focusItem.zIndex = this.zIndex +2;
}
if (l.Menu.bgImageOver) {
l.background.src = l.Menu.bgImageOver;
}
l.focusItem.top = this.top;
l.Menu.hideChildMenu(l);
} else if (l.style && l.Menu) {
if (a) {
a.style.backgroundColor = a.saveColor;
if (a.hilite) a.hilite.style.visibility = "hidden";
if (a.Menu.bgImageUp) {
a.style.background = "url(" + a.Menu.bgImageUp +")";;
}
}
if (l.isSeparator) return;
l.style.backgroundColor = l.menuHiliteBgColor;
l.zIndex = 1; // magic IE 4.5 mac happy doohicky. jba
if (l.Menu.bgImageOver) {
l.style.background = "url(" + l.Menu.bgImageOver +")";
}
if (l.hilite) {
l.style.backgroundColor = l.menuHiliteBgColor;
l.hilite.style.visibility = "inherit";
}
l.focusItem.style.top = l.focusItem.style.pixelTop = l.style.pixelTop;
l.focusItem.style.zIndex = l.zIndex +1;
l.Menu.hideChildMenu(l);
} else {
return; // not a menu - magic IE 4.5 mac happy doohicky. jba
}
window.ActiveMenuItem = l;
}
function onMenuItemAction(e, l) {
l = window.ActiveMenuItem;
if (!l) return;
hideActiveMenus();
if (l.action) {
eval("" + l.action);
}
window.ActiveMenuItem = 0;
}
function FW_clearTimeout()
{
if (fwHideMenuTimer) clearTimeout(fwHideMenuTimer);
fwHideMenuTimer = null;
fwDHFlag = false;
}
function FW_startTimeout()
{
fwStart = new Date();
fwDHFlag = true;
fwHideMenuTimer = setTimeout("fwDoHide()", 1000);
}
function fwDoHide()
{
if (!fwDHFlag) return;
var elapsed = new Date() - fwStart;
if (elapsed fwHideMenuTimer = setTimeout("fwDoHide()", 1100-elapsed);
return;
}
fwDHFlag = false;
hideActiveMenus();
window.ActiveMenuItem = 0;
}
function FW_showMenu(menu, x, y, child) {
if (!window.fwWroteMenu) return;
FW_clearTimeout();
if (document.layers) {
if (menu) {
var l = menu.menuLayer || menu;
l.left = 1;
l.top = 1;
hideActiveMenus();
if (this.visibility) l = this;
window.ActiveMenu = l;
} else {
var l = child;
}
if (!l) return;
for (var i=0; i
l.layers[i].visibility = "inherit";
if (l.layers[i].document.layers.length > 0)
FW_showMenu(null, "relative", "relative", l.layers[i]);
}
if (l.parentLayer) {
if (x != "relative")
l.parentLayer.left = x || window.pageX || 0;
if (l.parentLayer.left + l.clip.width > window.innerWidth)
l.parentLayer.left -= (l.parentLayer.left + l.clip.width - window.innerWidth);
if (y != "relative")
l.parentLayer.top = y || window.pageY || 0;
if (l.parentLayer.isContainer) {
l.Menu.xOffset = window.pageXOffset;
l.Menu.yOffset = window.pageYOffset;
l.parentLayer.clip.width = window.ActiveMenu.clip.width +2;
l.parentLayer.clip.height = window.ActiveMenu.clip.height +2;
if (l.parentLayer.menuContainerBgColor) l.parentLayer.document.bgColor = l.parentLayer.menuContainerBgColor;
}
}
l.visibility = "inherit";
if (l.Menu) l.Menu.container.visibility = "inherit";
} else if (FIND("menuItem0")) {
var l = menu.menuLayer || menu;
hideActiveMenus();
if (typeof(l) == "string") {
l = FIND(l);
}
window.ActiveMenu = l;
var s = l.style;
s.visibility = "inherit";
if (x != "relative")
s.left = s.pixelLeft = x || (window.pageX + document.body.scrollLeft) || 0;
if (y != "relative")
s.top = s.pixelTop = y || (window.pageY + document.body.scrollTop) || 0;
l.Menu.xOffset = document.body.scrollLeft;
l.Menu.yOffset = document.body.scrollTop;
}
if (menu) {
window.activeMenus[window.activeMenus.length] = l;
}
}
function onMenuItemDown(e, l) {
var a = window.ActiveMenuItem;
if (document.layers) {
if (a) {
a.eX = e.pageX;
a.eY = e.pageY;
a.clicked = true;
}
}
}
function mouseupMenu(e)
{
hideMenu(true, e);
hideActiveMenus();
return true;
}
function mouseoutMenu()
{
hideMenu(false, false);
return true;
}
function hideMenu(mouseup, e) {
var a = window.ActiveMenuItem;
if (a && document.layers) {
a.document.bgColor = a.saveColor;
a.focusItem.top = -30;
if (a.hilite) a.hilite.visibility = "hidden";
if (mouseup && a.action && a.clicked && window.ActiveMenu) {
if (a.eX = e.pageX-15 && a.eY = e.pageY-10) {
setTimeout(''window.ActiveMenu.Menu.onMenuItemAction();'', 2);
}
}
a.clicked = false;
if (a.Menu.bgImageOver) {
a.background.src = a.Menu.bgImageUp;
}
} else if (window.ActiveMenu && FIND("menuItem0")) {
if (a) {
a.style.backgroundColor = a.saveColor;
if (a.hilite) a.hilite.style.visibility = "hidden";
if (a.Menu.bgImageUp) {
a.style.background = "url(" + a.Menu.bgImageUp +")";;
}
}
}
if (!mouseup && window.ActiveMenu) {
if (window.ActiveMenu.Menu) {
if (window.ActiveMenu.Menu.hideOnMouseOut) {
FW_startTimeout();
}
return(true);
}
}
return(true);
}
function PxToNum(pxStr)
{ // pxStr == 27px, we want 27.
if (pxStr.length > 2) {
n = Number(pxStr.substr(0, pxStr.length-2));
return(n);
}
return(0);
}
function hideChildMenu(hcmLayer) {
FW_clearTimeout();
var l = hcmLayer;
for (var i=0; i var theLayer = l.Menu.childMenus[i];
if (document.layers) {
theLayer.visibility = "hidden";
} else {
theLayer = FIND(theLayer);
theLayer.style.visibility = "hidden";
}
theLayer.Menu.hideChildMenu(theLayer);
}
if (l.childMenu) {
var childMenu = l.childMenu;
if (document.layers) {
l.Menu.FW_showMenu(null,null,null,childMenu.layers[0]);
childMenu.zIndex = l.parentLayer.zIndex +1;
childMenu.top = l.top + l.parentLayer.top + l.Menu.menuLayer.top + l.Menu.menuItemHeight/3;
if (childMenu.left + childMenu.clip.width > window.innerWidth) {
childMenu.left = l.parentLayer.left - childMenu.clip.width + l.Menu.menuLayer.left + 15;
l.Menu.container.clip.left -= childMenu.clip.width;
} else {
childMenu.left = l.parentLayer.left + l.parentLayer.clip.width + l.Menu.menuLayer.left -5;
}
var w = childMenu.clip.width+childMenu.left-l.Menu.container.clip.left;
if (w > l.Menu.container.clip.width)
l.Menu.container.clip.width = w;
var h = childMenu.clip.height+childMenu.top-l.Menu.container.clip.top;
if (h > l.Menu.container.clip.height) l.Menu.container.clip.height = h;
l.document.layers[1].zIndex = 0;
childMenu.visibility = "inherit";
} else if (FIND("menuItem0")) {
childMenu = FIND(l.childMenu);
var menuLayer = FIND(l.Menu.menuLayer);
var s = childMenu.style;
s.zIndex = menuLayer.style.zIndex+1;
if (document.all) { // ie case.
s.pixelTop = l.style.pixelTop + menuLayer.style.pixelTop + l.Menu.menuItemHeight/3;
s.left = s.pixelLeft = (menuLayer.style.pixelWidth) + menuLayer.style.pixelLeft -5;
} else { // zilla case
var top = PxToNum(l.style.top) + PxToNum(menuLayer.style.top) + l.Menu.menuItemHeight/3;
var left = (PxToNum(menuLayer.style.width)) + PxToNum(menuLayer.style.left) -5;
s.top = top;
s.left = left;
}
childMenu.style.visibility = "inherit";
} else {
return;
}
window.activeMenus[window.activeMenus.length] = childMenu;
}
}
function hideActiveMenus() {
if (!window.activeMenus) return;
for (var i=0; i if (!activeMenus[i]) continue;
if (activeMenus[i].visibility && activeMenus[i].Menu) {
activeMenus[i].visibility = "hidden";
activeMenus[i].Menu.container.visibility = "hidden";
activeMenus[i].Menu.container.clip.left = 0;
} else if (activeMenus[i].style) {
var s = activeMenus[i].style;
s.visibility = "hidden";
s.left = -200;
s.top = -200;
}
}
if (window.ActiveMenuItem) {
hideMenu(false, false);
}
window.activeMenus.length = 0;
}
今天关于NoSQL精粹_中文完整版和如何准确理解nosql的含义?的介绍到此结束,谢谢您的阅读,有关
本文标签: