首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

下面是一个弹出窗口的代码, 但是这他好象很占内存,请大家帮忙!解决思路

2012-02-02 
下面是一个弹出窗口的代码, 但是这他好象很占内存,请大家帮忙!scriptlanguage JavaScript varPopWidt

下面是一个弹出窗口的代码, 但是这他好象很占内存,请大家帮忙!
<script       language= "JavaScript ">      
        var       PopWidth       =       181;      
        var       PopHeight       =       116;      
        var       PopShow       =       60000;      
        var       PopTop       =       0;      
        var       showtime,hidetime,PopBorder       =       16,PopHeightBorder       =       28;      
        var       oPopup       =       window.createPopup();      
           
        function       popmsg(msgstr)      
        {      
        oPopup.document.body.innerHTML       =       ' <table       width= "181 "       height= "116 "       border= "0 "       cellspacing= "0 "       cellpadding= "0 "       bgcolor= "#D9E8FF "     style= "border-left:1px       solid       #A5B6CE;border-top:1px       solid       #A5B6CE;border-right:1px       solid       #425594;border-bottom:1px       solid       #425594; "> '       +      
    ' <tr> '       +      
    ' <td       width= "13 "       height= "23 "       background= "../images/Msn_Title_Bg.gif "       style= "border-left:1px       solid       #FFFFFF;border-top:1px       solid       #FFFFFF;padding-left:5px; "> <img   src= "images/msn1.jpg "   width= "17 "   height= "17 "> </td> '       +      
    ' <td       background= "../images/Msn_Title_Bg.gif "       style= "border-top:1px       solid       #FFFFFF;border-right:1px       solid       #CEDFF7;padding-left:5px;font-size:12px;font-family:Arial;color:#18306B; "> 系统提示 </td> '       +      
    ' </tr> '       +      
    ' <tr>       '       +      
    ' <td       colspan= "2 "       style= "border-left:1px       solid       #FFFFFF;border-right:1px       solid       #CEDFF7;border-bottom:1px       solid       #CEDFF7; ">       '       +      
    ' <table       width= "100% "       height= "100% "       border= "0 "       cellpadding= "0 "       cellspacing= "0 "       background= "../images/Msn_Content_Bg.gif "       style= "border-left:1px       solid       #738EBD;border-top:1px       solid       #738EBD;border-right:1px       solid       #BDCBEF;border-bottom:1px       solid       #BDCBEF; "> '       +      


    ' <tr>       '       +      
    ' <td       width= "66 "       height= "88 "       align= "center "> <img       src= "images/msn2.jpg "       width= "50 "       height= "50 "> </td> '       +      
    ' <td     align= "center "     style= "font-size:12px;font-family:Arial;color:#18306B>     谢谢光临       </td> '       +      
    ' </tr> '       +      
    ' </table> </td> '       +      
    ' </tr> '       +      
    ' </table> ';      
        popshow();      
        //oPopup.document.body.onclick       =       pophide;      
        }      
           
        function       popshow()      
        {      
        var       tmpHeight       =       PopTop <PopHeight?PopTop:PopHeight;      
        oPopup.show(screen.width-(PopWidth+PopBorder),screen.height-PopTop,PopWidth,tmpHeight);      
        if(       PopTop       <       (PopHeight+PopHeightBorder)       )      
        {      
    PopTop       =       PopTop       +       5;      
        }else{      
    setTimeout( "pophide(); ",PopShow);      
        }      
        showtime       =       setTimeout( "popshow(); ",10);//100      
        }      
           
        function       pophide()      
        {      
        if(showtime){clearTimeout(showtime);}      
        var       tmpHeight       =       PopTop <PopHeight?PopTop:PopHeight;      
        oPopup.show(screen.width-(PopWidth+PopBorder),screen.height-PopTop,PopWidth,tmpHeight);      
        if(       PopTop> 0       )      
        {      
        PopTop       =       PopTop       -       10;      
        hidetime       =       setTimeout( "pophide(); ",10);      


        }else{      
        clearTimeout(hidetime);      
        oPopup.hide();      
        }      
        }      
           
        popmsg( "userinfo ");      

        //->      
    </script>

如果把打开的这个网页关闭就好了.

[解决办法]
垃圾代码的范本,字符串拼接不但性能低下而且调试困难,可谓垃圾代码中的极品!

建议 LZ 用 DOM 方法重构此段代码!
[解决办法]
字符串拼接性能不低吧 据说量大的时候效率还比document.createElement高
如果觉得字符串操作效率低那就用Array缓存一下然后join( " ")拼接
[解决办法]
var oPopup = window.createPopup();

在IE有写版本上不支持,不建议,用其他的模拟一个就是了


-----------------------
没有最好,只有更好!
http://www.crossgo.com
[解决办法]
做了点改动:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN " "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd ">
<html xmlns= "http://www.w3.org/1999/xhtml " xml:lang= "zh-cn ">
<head>
<title> 开发者园地 </title>
<meta http-equiv= "content-type " content= "text/html; charset=gb2312 "/>
<base href= "http://dotnet.aspx.cc/ "/>
<link href= "Images/favicon.ico " rel= "Shortcut Icon "/>
<link href= "Detail.css " type= "text/css " rel= "stylesheet "/>
<style>
html,body {margin:0}
</style>
</head>
<body>
<div id= "eMeng " style= "BORDER-RIGHT:#455690 1px solid; BORDER-TOP:#a6b4cf 1px solid; Z-INDEX:99999; LEFT:0px; VISIBILITY:hidden; BORDER-LEFT:#a6b4cf 1px solid; WIDTH:180px; BORDER-BOTTOM:#455690 1px solid; POSITION:absolute; TOP:0px; HEIGHT:116px; BACKGROUND-COLOR:#c9d3f3 ">
<table width= "100% " border= "0 " cellpadding= "0 " cellspacing= "0 " style= "BORDER-TOP:#ffffff 1px solid; BORDER-LEFT:#ffffff 1px solid " bgcolor= "#cfdef4 ">
<tr>
<td height= "24 " width= "26 " style= "FONT-SIZE:12px;BACKGROUND-IMAGE:url(Images/msgTopBg.gif);COLOR:#0f2c8c " valign= "middle "> <img src= "http://dotnet.aspx.cc/images/meng.gif " hspace= "5 " align= "absMiddle " vspace= "1 "/> </td>
<td style= "FONT-WEIGHT:normal;FONT-SIZE:9pt;BACKGROUND-IMAGE:url(Images/msgTopBg.gif);COLOR:#1f336b;PADDING-TOP:4px " valign= "middle " width= "100% "> 温馨提示: </td>
<td style= "BACKGROUND-IMAGE:url(Images/msgTopBg.gif);PADDING-TOP:2px " valign= "middle " width= "19 " align= "right "> <img src= "Images/msgClose.jpg " hspace= "3 " style= "CURSOR:pointer " onclick= "closeDiv() " title= "关闭 "/> </td>
</tr>
<tr>
<td colspan= "3 " height= "90 " style= "PADDING-RIGHT:1px;BACKGROUND-IMAGE:url(Images/msgBottomBg.jpg);PADDING-BOTTOM:1px ">
<div style= "BORDER-RIGHT: #b9c9ef 1px solid; PADDING-RIGHT: 13px; BORDER-TOP: #728eb8 1px solid; PADDING-LEFT: 13px; FONT-SIZE: 9pt; PADDING-BOTTOM: 13px; BORDER-LEFT: #728eb8 1px solid; WIDTH: 100%; COLOR: #1f336b; PADDING-TOP: 18px; BORDER-BOTTOM: #b9c9ef 1px solid; HEIGHT: 100% "> 请打开您的音箱收听不同的音乐吧,随机播放。快试试吧!:) <br/>


<div align= "center "> <a href= "# " onclick= "window.parent.frames[ 'TopMusic '].location= 'Play.aspx ';return false " style= "FONT-WEIGHT:bold;COLOR:navy "> 收听全部 </a> </div>
</div>
</td>
</tr>
</table>
</div>

<script type= "text/javascript ">
//&lt;![CDATA[
var divTop,divLeft,divWidth,divHeight,docHeight,docWidth,objTimer,i = 0;
function getMsg()
{
try
{
divTop = parseInt(document.getElementById( "eMeng ").style.top, 10);
divLeft = parseInt(document.getElementById( "eMeng ").style.left, 10);
divHeight = parseInt(document.getElementById( "eMeng ").offsetHeight, 10);
divWidth = parseInt(document.getElementById( "eMeng ").offsetWidth, 10);
if (document.documentElement)
{
docWidth = document.documentElement.clientWidth;
docHeight = document.documentElement.clientHeight + document.documentElement.scrollTop;
}
else
{
docWidth = document.body.clientWidth;
docHeight = document.body.clientHeight;
}

document.getElementById( "eMeng ").style.top = (parseInt(document.body.scrollTop, 10) + docHeight) + "px " ;
document.getElementById( "eMeng ").style.left = (parseInt(document.body.scrollLeft, 10) + docWidth - divWidth) + "px ";
document.getElementById( "eMeng ").style.visibility = "visible ";
objTimer = window.setInterval( "moveDiv() ", 10);
}
catch(e){}
}

function resizeDiv()
{
//i += 1;
//if(i > 1288) closeDiv();//当过了1288秒自动关闭
try
{
divHeight = parseInt(document.getElementById( "eMeng ").offsetHeight, 10);
divWidth = parseInt(document.getElementById( "eMeng ").offsetWidth, 10);
if (document.documentElement)
{
docWidth = document.documentElement.clientWidth;
docHeight = document.documentElement.clientHeight + document.documentElement.scrollTop;
}
else
{
docWidth = document.body.clientWidth;
docHeight = document.body.clientHeight;
}

document.getElementById( "eMeng ").style.top = (docHeight - divHeight + parseInt(document.body.scrollTop, 10)) + "px ";
document.getElementById( "eMeng ").style.left = (docWidth - divWidth + parseInt(document.body.scrollLeft, 10)) + "px ";
}
catch(e){}
}

function moveDiv()
{
document.getElementById( "eMeng ").style.visibility = "visible ";
try
{
if (parseInt(document.getElementById( "eMeng ").style.top, 10) <= (docHeight - divHeight))
{
window.clearInterval(objTimer);
//objTimer = window.setInterval( "resizeDiv() ", 1);
objTimer = window.setTimeout( "closeDiv() ", 10000);//设置10秒后关闭
}
divTop = parseInt(document.getElementById( "eMeng ").style.top, 10);
document.getElementById( "eMeng ").style.top = (divTop - 1) + "px ";
}
catch(e){}
}
function closeDiv()
{
document.getElementById( 'eMeng ').style.visibility = 'hidden ';
if (objTimer) window.clearInterval(objTimer);
}
window.onload = getMsg;
window.onresize = window.onscroll = resizeDiv;
window.onerror = function(){}
//]]&gt;
</script>
<br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/>


<br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/>
</body>
</html>

热点排行