GVKun编程网logo

NoSQL精粹_中文完整版(如何准确理解nosql的含义?)

22

想了解NoSQL精粹_中文完整版的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于如何准确理解nosql的含义?的相关问题,此外,我们还将为您介绍关于---sadalage/fowler、BB

想了解NoSQL精粹_中文完整版的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于如何准确理解nosql的含义?的相关问题,此外,我们还将为您介绍关于---sadalage/fowler、BBS(php & mysql)完整版(三)、BBS(php & mysql)完整版(五)、BBS(php & mysql)完整版(六)的新知识。

本文目录一览:

NoSQL精粹_中文完整版(如何准确理解nosql的含义?)

NoSQL精粹_中文完整版(如何准确理解nosql的含义?)

<NoSQL精粹>---sadalage/fowler

---sadalage/fowler

主要讲了nosql各个框架的优缺点,特别与RDBMS做了比较,简略说明了哪些东西适合哪个框架以及nosql的ACID问题

第一章

关系型数据库确实提供了很多好的机制,在持久化和控制并发以及事务上有很好的处理但是从根本的角度,关系模型和内存中的数据结构(键值对)生来就不匹配,或者称为"阻抗失谐".虽然后期出现了ORM框架来改善这种阻抗失谐,但是高并发查询/修改多关系的表时,就遇到了数据库的瓶颈.此时nosql就能改善这个问题(当然要基于良好的框架选择和优良的"存储模式"),特别是在集群中,nosql更好

第二章

面向关系和面向聚合.在集群中,key是采集数据时所需节点数降至最小,nosql在此时就非常强大了,因为可以把聚合包含的信息弄大一点,包含很多东西(具体看业务需求).键值数据模型(redis)查询时获取整个聚合,文档数据模型(MongoDB)可以只获取部分聚合,还可以创建聚合内容的索引.为保证事务,最好以聚合为最小数据单位操作.所以如果数据交互大多在同一聚合内执行的,可以用面向聚合的数据库(nosql大多都是).

第三章

物化视图/映射化简,就像索引一样,预先准备好业务上要查询的数据,执行时直接拿.nosql这点上比rdbms好,因为它已经持久化了一份.面向聚合的数据库在处理聚合之间的关系时,显得有点棘手.

第六章

不用事务,用版本戳代替,实现离线的并发实现,很好的解决了锁带来的性能问题.

第八章

键值数据库适合存放 会话信息 用户配置信息 购物车数据.不适合数据间关系,含有多项关键操作的事务.查询键值对的某部分值来搜寻关键字(可用lucene等)

nosql目前还是属于年轻的东西,如果目前能忍受的情况下,尽量用RDBMS,因为20多年的积累,相关问题肯定有专家的解决方案

BBS(php & mysql)完整版(三)

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>&nbsp;";
   }
   ?>
    </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>&nbsp;</p>
<p>&nbsp;</p>
</body>
</html>

BBS(php & mysql)完整版(五)

BBS(php & mysql)完整版(五)

//下面为menu_comment.js
function 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 +''&nbsp</DIV>n<DIV ID="menuItemHilite''+ countItems +''">''+ item +''&nbsp</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("&nbsp;");
            focusItem.document.close();     
        } else {
          content += ''      <DIV ID="focusItem''+ countMenus +''"onClick="onMenuItemAction(null,this);">&nbsp;</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)完整版(六)

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            var menuLayer = FIND("menuLayer" + 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                var l = FIND("menuItem" + menuCount);
                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            if (!l.layers[i].isHilite)  
                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的含义?的介绍到此结束,谢谢您的阅读,有关---sadalage/fowler、BBS(php & mysql)完整版(三)、BBS(php & mysql)完整版(五)、BBS(php & mysql)完整版(六)等更多相关知识的信息可以在本站进行查询。

本文标签: