第一点:其实与第二点的道理差不多,要想alert出来js2,那么就要等加载完毕关于第二点:onload这个是所有信息加载完毕后再执行它调用的函数,
<script language="javascript"> 
    methodO(); 
</script> 这个则不同,是根据html的由上到下解析顺序解析到它,它就执行了

解决方案 »

  1.   

    第一点你可以这么尝试window.onload=js2();
    也可以
    window.onload = function() {
             js2();
        }
      

  2.   

    这样,我找一篇文章给你看,也许你会更加明白http://www.cnblogs.com/rison/archive/2007/03/26/688454.html
      

  3.   

    1.js是单线程执行的
    2.setTimeout并不总是在你定的时间后准时执行,如果过了设定的时间后有脚本在运行,set的内容要等一个脚本块执行完了才执行。也就是说要排队
    3.函数是一个连续执行的代码块
    第二个问题里你给的代码不全,按理说函数是不会执行到一半未经调用就去执行别的代码的。
      

  4.   

    问题1是由于文档还没有加载完,所以你立即调用并不会被执行,采用延时后代码加载完毕因此调用成功。
    问题2settimeout是指定时间后执行代码.你先methodO,浏览器会先执行里面能立即执行的代码,并且将里面遇到的settimeout代码保留并计时.然后会执行methodT里的代码,并且计时执行刚才settimeout的代码.同时也请参考楼上各位的答案。
      

  5.   

    问题1我是想知道
    我怕由于网络或者其他原因,造成这个延迟时间不准确!我又不想写一个很长的时间!所以 有没有什么解决办法能不出现这个延迟啊? 
    问题2我是想知道
    怎么能让methodO();方法里面全部的语句都执行完以后,在执行onload中的methodT()方法 
    里的内容。另外方法放在onload里面和放到onload外面有什么区别
    啊?
    对不起可能我上面问的写的不是很清楚写了一大堆乱78糟的啊
      

  6.   

    我看到这个帖子解决了相关的问题 http://topic.csdn.net/t/20050202/14/3770820.html 
    可是我是 
    document.write(' <script src="xxxxx.js" type="text/javascript"> </script>'); 
    不知道是否可以实现啊? 
    即实现 <script> 
    init(); 
    function init(){ setTimeout(function(){init1();},1000); 
    setTimeout(function(){init2();},3000); 
    } function init1(){ 
    document.write(' <script src="js.js" type="text/javascript"> </script>'); 
    alert("1"); 
    } function init2(){ 
    alert("2"); 

    </script> 类似上面的逻辑啊
      

  7.   

    你的与那个不一样,直接写在函数里的,根本不能用document.write
      

  8.   


    function mainMethod()
    {
     writeMethod1("JsFile");
     setTimeout(function(){writeMethod2();},500);
       setTimeout(function(){Method3();},1000);
    }function writeMethod1(url){
    document.write("<script src=\""+url+"\" type=\"text/javascript\"></script>");
    }
    function writeMethod2(){
    var file = getMethod1("");//调用,用writeMethod1方法用,document.write引用的JS文件的方法!
    var jsFile = file + ".js";
    var cssFile = file + ".css";
    .//其他一些,用writeMethod1方法用,document.write引用的JS文件的方法、属性
    .
    .
    .
    .
    document.write('<link href="'  + jsFile + '" rel="stylesheet" type="text/css"/>');
    document.write('<script src="' + cssFile + '" type="text/javascript"></script>');  
    }
    function Method3(){
    var finalValue = getMethod2("");
    //调用,用writeMethod2方法用,document.write引用的JS文件的方法!
    }我怕没说清楚在说一下逻辑
    逻辑是
    mainMethod方法调用writeMethod1方法,该方法用document.write方式引入一个Js(xJs.js).
    然后这个Js(xJs.js)的属性和方法,被writeMethod2()方法使用,同时writeMethod2()方法也用
    document.write方式引入一个Js(xxJs.js).然后这个Js(xxJs.js)的属性方法被方法Method3使用!问题是。我在writeMethod2方法中使用和,alert,用writeMethod1方法引入的Js文件(xJs.js)
    都没有问题!(直接使用不行,在引入该Js文件(xJs.js)后, 用setTimeout做一个延迟就可以了)
    可是。我在Method3中使用和,alert,writeMethod2方法用document.write引入的Js文件(xxJs.js)
    就不行!总是提示找不到变量或对象!但是写法都一样为什么第一个行第二个不行呢?
      

  9.   

    to chinmo 谢谢你!
    可能我没说清楚我的不能直接写到函数里面!
    我是为了说问题才简单写的我的结构必须是这样啊
      

  10.   

    根本不能那么用,
    function mainMethod() 

     writeMethod1("JsFile"); 
     setTimeout(function(){writeMethod2();},500); 
       setTimeout(function(){Method3();},1000); 

    你这个writeMethod1("JsFile"); 这个运行里面有一个document.write(" <script src=\""+url+"\" type=\"text/javascript\"> </script>"); 要清楚一点,只要函数里再使用document.write,那么就相当与重写页面了,那么你后面的几个函数页就不存在了
      

  11.   

    CSS得可以这么写入
    var objHead=document.getElementsByTagName('head'); 
    var objCSS=document.createElement('link'); 
    objCSS.rel='stylesheet'; 
    objCSS.type='text/css'; 
    objCSS.href=css.css; 
    objHead[0].appendChild(objCSS);JS得可以这么写
    var objScript=document.createElement("script"); 
    objScript.src=js.js
      

  12.   

    可是我第一个为什么可以第二个才不行的
    我在writeMethod2方法中使用和,alert,用writeMethod1方法引入的Js文件(xJs.js) 
    都没有问题!
    CSS得可以这么写入 
    var objHead=document.getElementsByTagName('head');  
    var objCSS=document.createElement('link');  
    objCSS.rel='stylesheet';  
    objCSS.type='text/css';  
    objCSS.href=css.css;  
    objHead[0].appendChild(objCSS); JS得可以这么写 
    var objScript=document.createElement("script");  
    objScript.src=js.js这个方法我也用过总总是说找不到问题是。我在writeMethod2方法中使用和,alert,用writeMethod1方法引入的Js文件(xJs.js) 
    都没有问题!(直接使用不行,在引入该Js文件(xJs.js)后, 用setTimeout做一个延迟就可以了) 
    可是。我在Method3中使用和,alert,writeMethod2方法用document.write引入的Js文件(xxJs.js) 
    就不行!总是提示找不到变量或对象!但是写法都一样为什么第一个行第二个不行呢? 
      

  13.   

    只要函数里再使用document.write,那么就相当与重写页面了,那么你后面的几个函数和对象就不存在了
      

  14.   


    我看了啊...我也看到相关文档说document.write,那么就相当与重写页面了!可是我不明白的是........第一个为什么可以第二个才不行的 
    我在writeMethod2方法中使用和,alert,用writeMethod1方法引入的Js文件(xJs.js)  
    都没有问题! 
      

  15.   

    ---
    a.html
    ---<script language="JavaScript"> 
    function LoadJS( id, fileUrl ) 

        alert("a.html");
        var oScript= document.createElement("script"); 
        oScript.type = "text/javascript"; 
        oScript.src=fileUrl ; 

    setTimeout(function(){LoadJS("a.js");},5000);
    alert( "主页面动态加载a.js并取其中的变量:" + str ); 
    </script>
    --
    a.js
    --
    var str = "中国"; 
    alert( "这是a.js中的变量:" + str );我我这样写还是不能引入啊!还是提示找不到啊说明根本没引如a.js成功
      

  16.   

    <script language="JavaScript">  
    function LoadJS(fileUrl)  
    {  var objHead=document.getElementsByTagName('head'); 
        var oScript= document.createElement("script");   
    oScript.defer = "defer"; 
        oScript.src=fileUrl ;  
    objHead[0].appendChild(oScript); 
    }  
    setTimeout(function(){LoadJS("a.js");},1000); 
    setTimeout(function(){alert( "主页面动态加载a.js并取其中的变量:" + str );  },2000); 
    </script>
    看看吧
      

  17.   

    知道为什么没引入吗??
    var objHead=document.getElementsByTagName('head'); 
    objHead[0].appendChild(oScript);
    你少了这2句
      

  18.   

    我用
    function LoadJS(fileUrl) {
         var html_doc = document.getElementsByTagName('head')[0];
         var js = document.createElement('script');
         js.setAttribute('type', 'text/javascript');
         js.setAttribute('src', fileUrl);
         html_doc.appendChild(js);
    }这种方式可以加载了.....
    但是速度很慢.比以前慢多了我不知道
    document.write("<script src=\""+url+"\" type=\"text/javascript\"></script>");这样造成速度慢
    还是LoadJS方法造成速度慢
      

  19.   

    1.
    ------- 
    1.html 
    ------- 
    <script src="a.js" type="text/javascript"> </script> 
    <head> 
    <script> 
        alert("1.html"); 
        js1(); 
    </script> 
    </head> 
    </html> 
    ------- 
    a.js 
    ------- 
     function js1(){ 
       alert("js1"); 
       document.write(' <script src="b.js" type="text/javascript"> </script>'); 
      //js2();//如果在这里,直接这样调用就不行,就不会打alert出来js2 
       setTimeout(function(){js2();},1); //但是如果延迟,加载哪怕1毫秒则可以alert出来js2 

    ------- 
    b.js 
    ------- 
     function js2() { 
      alert("js2"); 
     } 
    我们来分析
    1.html先加载了a.js,alert("js1");
       document.write(' <script src="b.js" type="text/javascript"> </script>');
    这个时候,它只是在BODY里写进了 
    <script src="b.js" type="text/javascript"> </script>
    这个字串,内部并没有认定加载了b.js文件,所以b.js文件中的alert("js2")并不成功。直到页面加载完成了,setTimeout事件才会被触发。
    这里你用setTimeout(function(){js2();},1),程序再次检索整个文件集,发现了
    <script src="b.js" type="text/javascript"> </script>
    这时你的alert("js2")终于“浮水”了。
    所以你说“//但是如果延迟,加载哪怕1毫秒则可以alert出来js2 ”,我说,那怕是0毫秒,也一样alert。
    你说“但是如果我延迟加载哪怕1毫秒则可以执行!但是我怕由于网络或者其他原因,造成这个延迟时间不准确!我又不想写一个很长的时间!所以 
    有没有什么解决办法能不出现这个延迟啊? ”,
    我说“直到页面加载完成了,setTimeout事件才会被触发。”,所以问题不存在了。
    你的“
    function LoadJS( id, fileUrl )  
    {  
        alert("a.html"); 
        var oScript= document.createElement("script");  
        oScript.type = "text/javascript";  
        oScript.src=fileUrl ;  
    }  ”
    没有成功我的“        script=document.createElement('script'); 
            script.src='b.js'; 
            script.type='text/javascript'; 
            script.defer=true;        var head=document.getElementsByTagName('head').item(0); 
           void(head.appendChild(script)); 
    ”似乎成功了。
    为什么呢,因为我用后面两句吧b.js偷偷放在了head里面。这样,机制发现head的改变,重新加载b.js,所以可以用这种方法解决这个问题
      

  20.   

    2.我说“直到页面加载完成了,setTimeout事件才会被触发。”,所以你发现你的methodO();做了一半就偷懒。解决也不难,要么你的methodO(); 不要setTimeout了,要么onload里的methodT() 也来个setTimeout。
    不过。问T1解决了,问T2你应该不需要了
      

  21.   

    对不起我的表达有问题!
    确实是因为延迟造成的!
    希望我这次能说清楚啊!
    问题1:我现在就是希望有没有不用写setTimeout就能做到的!因为我不知道这个setTimeout到底设置多少合适!我怕由于网络等问题造成设置少了加载不上,设置多了造成效率低!当然也可以加一个判断,通过判断引入的js里的属性是否存在,来判断是否加载成功!但是我想知道有没有不用setTimeout的方法问题2:我还是不是很明白为什么!有些地方用document.write引入文件可以有些地方却不行!
    我在writeMethod2方法中使用和,alert,用writeMethod1方法引入的Js文件(xJs.js) 
    都没有问题!(直接使用不行,在引入该Js文件(xJs.js)后, 用setTimeout做一个延迟就可以了) 
    可是。我在Method3中使用和,alert,writeMethod2方法用document.write引入的Js文件(xxJs.js) 
    就不行!总是提示找不到变量或对象!但是写法都一样为什么第一个行第二个不行呢? 
    function mainMethod() 

     writeMethod1("JsFile"); 
     setTimeout(function(){writeMethod2();},500); 
       setTimeout(function(){Method3();},1000); 
    } function writeMethod1(url){ 
    document.write(" <script src=\""+url+"\" type=\"text/javascript\"> </script>"); 

    function writeMethod2(){ 
    var file = getMethod1("");//调用,用writeMethod1方法用,document.write引用的JS文件的方法! 
    var jsFile = file + ".js"; 
    var cssFile = file + ".css"; 
    .//其他一些,用writeMethod1方法用,document.write引用的JS文件的方法、属性 




    document.write(' <link href="'  + jsFile + '" rel="stylesheet" type="text/css"/>'); 
    document.write(' <script src="' + cssFile + '" type="text/javascript"> </script>');   

    function Method3(){ 
    var finalValue = getMethod2(""); 
    //调用,用writeMethod2方法用,document.write引用的JS文件的方法! 

    问题三执行顺序的迷惑:
    ------- 
    2.html 
    ------- 
    <html> 
    <head> 
    <script src="xxxx.js" type="text/javascript"> </script> 
    <script language="javascript"> 
        methodO(); 
    </script> 
    </head> 
    <body onload="methodT()"> 




    </body> 
    </html> [code=JScript]
    问题3、 2.html按照我测试,他的执行顺序是先执行methodO();然后才执行methodT();但是我在方法methodO()用了 
    类似setTimeout的方法!结果我发现并不是methodO();执行完,全部的语句,以后才执行methodT()方法的; 
    由于我是修改别人的代码所以我不想动他的逻辑啊!我不知道他为什么不在methodO();方法中调用methodT();而 
    是要这样用!我的问题是!怎么能让methodO();方法里面全部的语句都执行完以后,在执行onload中的methodT()方法 
    里的内容。另外方法放在onload里面和放到onload外面有什么区别啊?问题4、 我通过打印时间的方式(  alert("开始时间"+nowStart);alert("结束时间"+nowEnd);)判断出这几个方法都不是导致时间过长的原因.其中writeMethod2方法作一些业务逻辑。
    然后Method3方法显示writeMethod2方法加载的那些js数据包的数据!
    然后用$("xxxxx").innerHTML = value;的方式把js数据包里面的数据显示在叶面上
    叶面上都有很多div我想是不是用$("xxxxx").innerHTML方式把数值设置到div上耗费的时间太多了啊?
    有什么加速的方法吗?
    function getNowT()
    {
    var d = new Date(); 
    var year = d.getYear(); 
    var month = d.getMonth()+1; 
    var date = d.getDate(); 
    var day = d.getDay(); 
    var hours = d.getHours(); 
    var minutes = d.getMinutes(); 
    var seconds = d.getSeconds(); 
    var ms = d.getMilliseconds(); 
    return year+"年"+month+"月"+day+"日"+ hours+"时"+minutes+"分"+seconds+"秒"+ms; 
    }
    function mainMethod() 

      var nowStart = getNowT();
      writeMethod1("JsFile"); 
      setTimeout(function(){writeMethod2();},1); 
      setTimeout(function(){Method3();},2); 
      var nowEnd = getNowT();
      alert("开始时间"+nowStart);
      alert("结束时间"+nowEnd);
    } function writeMethod1(url){ 
    document.write(" <script src=\""+url+"\" type=\"text/javascript\"> </script>"); 

    function writeMethod2(){ 
    var file = getMethod1("");//调用,用writeMethod1方法用,document.write引用的JS文件的方法! 
    var jsFile = file + ".js"; 
    var cssFile = file + ".css"; 
    .//其他一些,用writeMethod1方法用,document.write引用的JS文件的方法、属性 




    document.write(' <link href="'  + jsFile + '" rel="stylesheet" type="text/css"/>'); 
    document.write(' <script src="' + cssFile + '" type="text/javascript"> </script>');   

    function Method3(){ 
    var finalValue = getMethod2(""); 
    //调用,用writeMethod2方法用,document.write引用的JS文件的方法! 

    [code=JScript]ps:
    另外1--------------------这个没看明白啊....我说“直到页面加载完成了,setTimeout事件才会被触发。”,所以问题不存在了。 这是什么意思啊?所以你说“//但是如果延迟,加载哪怕1毫秒则可以alert出来js2 ”,我说,那怕是0毫秒,也一样alert。 
    你说“但是如果我延迟加载哪怕1毫秒则可以执行!但是我怕由于网络或者其他原因,造成这个延迟时间不准确!我又不想写一个很长的时间!所以  
    有没有什么解决办法能不出现这个延迟啊? ”, 
    我说“直到页面加载完成了,setTimeout事件才会被触发。”,所以问题不存在了。 
    2----------------
    <script language="JavaScript">  
    function LoadJS(fileUrl)  
    {  var objHead=document.getElementsByTagName('head'); 
        var oScript= document.createElement("script");   
        oScript.defer = "defer"; 
        oScript.src=fileUrl ;  
        objHead[0].appendChild(oScript); 
    }  
    setTimeout(function(){LoadJS("a.js");},1000); 
    setTimeout(function(){alert( "主页面动态加载a.js并取其中的变量:" + str );  },2000); 
    </script>
    这种发发是不行的.我知道我之前LoadJS这个方法有两个参数
    您可以运行我的代码依然可以运行的!也可以打印出来信息!这好象是js的允许这种String...str这种的语法风格!
    还有    oScript.defer = "defer"; 是针对ie的写法ff有些版本不支持
      

  22.   

    oScript.defer = "defer"; 有没有这个都没什么的!
      

  23.   

    问题2:我还是不是很明白为什么!有些地方用document.write引入文件可以有些地方却不行! 
    我在writeMethod2方法中使用和,alert,用writeMethod1方法引入的Js文件(xJs.js)  
    都没有问题!(直接使用不行,在引入该Js文件(xJs.js)后, 用setTimeout做一个延迟就可以了)  
    可是。我在Method3中使用和,alert,writeMethod2方法用document.write引入的Js文件(xxJs.js)  
    就不行!总是提示找不到变量或对象!但是写法都一样为什么第一个行第二个不行呢?  
    JScript code
    function mainMethod() 

     writeMethod1("JsFile"); 
     setTimeout(function(){writeMethod2();},500); 
       setTimeout(function(){Method3();},1000); 
    } function writeMethod1(url){ 
    document.write(" <script src=\""+url+"\" type=\"text/javascript\"> </script>"); 

    function writeMethod2(){ 
    var file = getMethod1("");//调用,用writeMethod1方法用,document.write引用的JS文件的方法! 
    var jsFile = file + ".js"; 
    var cssFile = file + ".css"; 
    .//其他一些,用writeMethod1方法用,document.write引用的JS文件的方法、属性 




    document.write(' <link href="'  + jsFile + '" rel="stylesheet" type="text/css"/>'); 
    document.write(' <script src="' + cssFile + '" type="text/javascript"> </script>');   

    function Method3(){ 
    var finalValue = getMethod2(""); 
    //调用,用writeMethod2方法用,document.write引用的JS文件的方法! 

    问题三执行顺序的迷惑: 
    JScript code
    ------- 
    2.html 
    ------- 
    <html> 
    <head> 
    <script src="xxxx.js" type="text/javascript"> </script> 
    <script language="javascript"> 
        methodO(); 
    </script> 
    </head> 
    <body onload="methodT()"> 




    </body> 
    </html> [code=JScript]
    问题3、 2.html按照我测试,他的执行顺序是先执行methodO();然后才执行methodT();但是我在方法methodO()用了  
    类似setTimeout的方法!结果我发现并不是methodO();执行完,全部的语句,以后才执行methodT()方法的;  
    由于我是修改别人的代码所以我不想动他的逻辑啊!我不知道他为什么不在methodO();方法中调用methodT();而  
    是要这样用!我的问题是!怎么能让methodO();方法里面全部的语句都执行完以后,在执行onload中的methodT()方法  
    里的内容。另外方法放在onload里面和放到onload外面有什么区别啊? 
    问题4、 我通过打印时间的方式(  alert("开始时间"+nowStart);alert("结束时间"+nowEnd);)判断出这几个方法都不是导致时间过长的原因.其中writeMethod2方法作一些业务逻辑。 
    然后Method3方法显示writeMethod2方法加载的那些js数据包的数据! 
    然后用$("xxxxx").innerHTML = value;的方式把js数据包里面的数据显示在叶面上 
    叶面上都有很多div我想是不是用$("xxxxx").innerHTML方式把数值设置到div上耗费的时间太多了啊? 
    有什么加速的方法吗? 
    JScript code
    function getNowT()
    {
        var d = new Date(); 
        var year = d.getYear(); 
        var month = d.getMonth()+1; 
        var date = d.getDate(); 
        var day = d.getDay(); 
        var hours = d.getHours(); 
        var minutes = d.getMinutes(); 
        var seconds = d.getSeconds(); 
        var ms = d.getMilliseconds(); 
        return year+"年"+month+"月"+day+"日"+ hours+"时"+minutes+"分"+seconds+"秒"+ms; 
    }
    function mainMethod() 

      var nowStart = getNowT();
      writeMethod1("JsFile"); 
      setTimeout(function(){writeMethod2();},1); 
      setTimeout(function(){Method3();},2); 
      var nowEnd = getNowT();
      alert("开始时间"+nowStart);
      alert("结束时间"+nowEnd);
    } function writeMethod1(url){ 
    document.write(" <script src=\""+url+"\" type=\"text/javascript\"> </script>"); 

    function writeMethod2(){ 
    var file = getMethod1("");//调用,用writeMethod1方法用,document.write引用的JS文件的方法! 
    var jsFile = file + ".js"; 
    var cssFile = file + ".css"; 
    .//其他一些,用writeMethod1方法用,document.write引用的JS文件的方法、属性 




    document.write(' <link href="'  + jsFile + '" rel="stylesheet" type="text/css"/>'); 
    document.write(' <script src="' + cssFile + '" type="text/javascript"> </script>');   

    function Method3(){ 
    var finalValue = getMethod2(""); 
    //调用,用writeMethod2方法用,document.write引用的JS文件的方法! 

    [code=JScript]
      

  24.   

    问题2:我还是不是很明白为什么!有些地方用document.write引入文件可以有些地方却不行!  
    我在writeMethod2方法中使用和,alert,用writeMethod1方法引入的Js文件(xJs.js)   
    都没有问题!(直接使用不行,在引入该Js文件(xJs.js)后, 用setTimeout做一个延迟就可以了)   
    可是。我在Method3中使用和,alert,writeMethod2方法用document.write引入的Js文件(xxJs.js)   
    就不行!总是提示找不到变量或对象!但是写法都一样为什么第一个行第二个不行呢?    function mainMethod()  
    {  
     writeMethod1("JsFile");  
     setTimeout(function(){writeMethod2();},500);  
       setTimeout(function(){Method3();},1000);  
    }  

    function writeMethod1(url){  
    document.write("  <script src=\""+url+"\" type=\"text/javascript\">  </script>");  
    }  
    function writeMethod2(){  
    var file = getMethod1("");//调用,用writeMethod1方法用,document.write引用的JS文件的方法!  
    var jsFile = file + ".js";  
    var cssFile = file + ".css";  
    .//其他一些,用writeMethod1方法用,document.write引用的JS文件的方法、属性  
    .  
    .  
    .  
    .  
    document.write('  <link href="'  + jsFile + '" rel="stylesheet" type="text/css"/>');  
    document.write('  <script src="' + cssFile + '" type="text/javascript">  </script>');    
    }  
    function Method3(){  
    var finalValue = getMethod2("");  
    //调用,用writeMethod2方法用,document.write引用的JS文件的方法!  
    }  
    问题三执行顺序的迷惑:  
    -------  
    2.html  
    -------  
    <html>  
    <head>  
    <script src="xxxx.js" type="text/javascript">  </script>  
    <script language="javascript">  
        methodO();  
    </script>  
    </head>  
    <body onload="methodT()">  
    .  
    .  
    .  
    .  
    </body>  
    </html>  问题3、 2.html按照我测试,他的执行顺序是先执行methodO();然后才执行methodT();但是我在方法methodO()用了   
    类似setTimeout的方法!结果我发现并不是methodO();执行完,全部的语句,以后才执行methodT()方法的;   
    由于我是修改别人的代码所以我不想动他的逻辑啊!我不知道他为什么不在methodO();方法中调用methodT();而   
    是要这样用!我的问题是!怎么能让methodO();方法里面全部的语句都执行完以后,在执行onload中的methodT()方法   
    里的内容。另外方法放在onload里面和放到onload外面有什么区别啊?  
    问题4、 我通过打印时间的方式(  alert("开始时间"+nowStart);alert("结束时间"+nowEnd);)判断出这几个方法都不是导致时间过长的原因.其中writeMethod2方法作一些业务逻辑。  
    然后Method3方法显示writeMethod2方法加载的那些js数据包的数据!  
    然后用$("xxxxx").innerHTML = value;的方式把js数据包里面的数据显示在叶面上  
    叶面上都有很多div我想是不是用$("xxxxx").innerHTML方式把数值设置到div上耗费的时间太多了啊?  
    有什么加速的方法吗?   function getNowT() 

        var d = new Date();  
        var year = d.getYear();  
        var month = d.getMonth()+1;  
        var date = d.getDate();  
        var day = d.getDay();  
        var hours = d.getHours();  
        var minutes = d.getMinutes();  
        var seconds = d.getSeconds();  
        var ms = d.getMilliseconds();  
        return year+"年"+month+"月"+day+"日"+ hours+"时"+minutes+"分"+seconds+"秒"+ms;  



    function mainMethod()  
    {  
      var nowStart = getNowT(); 
      writeMethod1("JsFile");  
      setTimeout(function(){writeMethod2();},1);  
      setTimeout(function(){Method3();},2);  
      var nowEnd = getNowT(); 
      alert("开始时间"+nowStart); 
      alert("结束时间"+nowEnd); 
    }  

    function writeMethod1(url){  
    document.write("  <script src=\""+url+"\" type=\"text/javascript\">  </script>");  
    }  
    function writeMethod2(){  
    var file = getMethod1("");//调用,用writeMethod1方法用,document.write引用的JS文件的方法!  
    var jsFile = file + ".js";  
    var cssFile = file + ".css";  
    .//其他一些,用writeMethod1方法用,document.write引用的JS文件的方法、属性  
    .  
    .  
    .  
    .  
    document.write('  <link href="'  + jsFile + '" rel="stylesheet" type="text/css"/>');  
    document.write('  <script src="' + cssFile + '" type="text/javascript">  </script>');    
    }  
    function Method3(){  
    var finalValue = getMethod2("");  
    //调用,用writeMethod2方法用,document.write引用的JS文件的方法!  
    }  
      

  25.   

    问题2:我还是不是很明白为什么!有些地方用document.write引入文件可以有些地方却不行!  
    我在writeMethod2方法中使用和,alert,用writeMethod1方法引入的Js文件(xJs.js)   
    都没有问题!(直接使用不行,在引入该Js文件(xJs.js)后, 用setTimeout做一个延迟就可以了)   
    可是。我在Method3中使用和,alert,writeMethod2方法用document.write引入的Js文件(xxJs.js)   
    就不行!总是提示找不到变量或对象!但是写法都一样为什么第一个行第二个不行呢?    function mainMethod()  
    {  
     writeMethod1("JsFile");  
     setTimeout(function(){writeMethod2();},500);  
       setTimeout(function(){Method3();},1000);  
    }  

    function writeMethod1(url){  
    document.write("  <script src=\""+url+"\" type=\"text/javascript\">  </script>");  
    }  
    function writeMethod2(){  
    var file = getMethod1("");//调用,用writeMethod1方法用,document.write引用的JS文件的方法!  
    var jsFile = file + ".js";  
    var cssFile = file + ".css";  
    .//其他一些,用writeMethod1方法用,document.write引用的JS文件的方法、属性  
    .  
    .  
    .  
    .  
    document.write('  <link href="'  + jsFile + '" rel="stylesheet" type="text/css"/>');  
    document.write('  <script src="' + cssFile + '" type="text/javascript">  </script>');    
    }  
    function Method3(){  
    var finalValue = getMethod2("");  
    //调用,用writeMethod2方法用,document.write引用的JS文件的方法!  
    }  
    问题3执行顺序的迷惑: 
    2.html按照我测试,他的执行顺序是先执行methodO();然后才执行methodT();但是我在方法methodO()用了   
    类似setTimeout的方法!结果我发现并不是methodO();执行完,全部的语句,以后才执行methodT()方法的;   
    由于我是修改别人的代码所以我不想动他的逻辑啊!我不知道他为什么不在methodO();方法中调用methodT();而   
    是要这样用!我的问题是!怎么能让methodO();方法里面全部的语句都执行完以后,在执行onload中的methodT()方法   
    里的内容。另外方法放在onload里面和放到onload外面有什么区别啊?  
      -------  
    2.html  
    -------  
    <html>  
    <head>  
    <script src="xxxx.js" type="text/javascript">  </script>  
    <script language="javascript">  
        methodO();  
    </script>  
    </head>  
    <body onload="methodT()">  
    .  
    .  
    .  
    .  
    </body>  
    </html>  问题4、 我通过打印时间的方式(  alert("开始时间"+nowStart);alert("结束时间"+nowEnd);)判断出这几个方法都不是导致时间过长的原因.其中writeMethod2方法作一些业务逻辑。  
    然后Method3方法显示writeMethod2方法加载的那些js数据包的数据!  
    然后用$("xxxxx").innerHTML = value;的方式把js数据包里面的数据显示在叶面上  
    叶面上都有很多div我想是不是用$("xxxxx").innerHTML方式把数值设置到div上耗费的时间太多了啊?  
    有什么加速的方法吗?   function getNowT() 

        var d = new Date();  
        var year = d.getYear();  
        var month = d.getMonth()+1;  
        var date = d.getDate();  
        var day = d.getDay();  
        var hours = d.getHours();  
        var minutes = d.getMinutes();  
        var seconds = d.getSeconds();  
        var ms = d.getMilliseconds();  
        return year+"年"+month+"月"+day+"日"+ hours+"时"+minutes+"分"+seconds+"秒"+ms;  



    function mainMethod()  
    {  
      var nowStart = getNowT(); 
      writeMethod1("JsFile");  
      setTimeout(function(){writeMethod2();},1);  
      setTimeout(function(){Method3();},2);  
      var nowEnd = getNowT(); 
      alert("开始时间"+nowStart); 
      alert("结束时间"+nowEnd); 
    }  

    function writeMethod1(url){  
    document.write("  <script src=\""+url+"\" type=\"text/javascript\">  </script>");  
    }  
    function writeMethod2(){  
    var file = getMethod1("");//调用,用writeMethod1方法用,document.write引用的JS文件的方法!  
    var jsFile = file + ".js";  
    var cssFile = file + ".css";  
    .//其他一些,用writeMethod1方法用,document.write引用的JS文件的方法、属性  
    .  
    .  
    .  
    .  
    document.write('  <link href="'  + jsFile + '" rel="stylesheet" type="text/css"/>');  
    document.write('  <script src="' + cssFile + '" type="text/javascript">  </script>');    
    }  
    function Method3(){  
    var finalValue = getMethod2("");  
    //调用,用writeMethod2方法用,document.write引用的JS文件的方法!  
    }  
      

  26.   

    给你说清楚几点,不需要重复,这是3,4遍了:问题2:我还是不是很明白为什么!有些地方用document.write引入文件可以有些地方却不行!  
    我在writeMethod2方法中使用和,alert,用writeMethod1方法引入的Js文件(xJs.js)   
    都没有问题!(直接使用不行,在引入该Js文件(xJs.js)后, 用setTimeout做一个延迟就可以了)   
    可是。我在Method3中使用和,alert,writeMethod2方法用document.write引入的Js文件(xxJs.js)   
    就不行!总是提示找不到变量或对象!但是写法都一样为什么第一个行第二个不行呢?   已经说过,不必在重复!!因为就是使用一次document.write以后对象和方法都已经不存在,既然不会有变量和对象,不过你排序如何,函数种调用document.write,只要触发一次以后,后面的对象和方法都已经不存在
    问题3执行顺序的迷惑:  
    2.html按照我测试,他的执行顺序是先执行methodO();然后才执行methodT();但是我在方法methodO()用了    
    类似setTimeout的方法!结果我发现并不是methodO();执行完,全部的语句,以后才执行methodT()方法的;    
    由于我是修改别人的代码所以我不想动他的逻辑啊!我不知道他为什么不在methodO();方法中调用methodT();而    
    是要这样用!我的问题是!怎么能让methodO();方法里面全部的语句都执行完以后,在执行onload中的methodT()方法    
    里的内容。另外方法放在onload里面和放到onload外面有什么区别啊?   function writeMethod1(url){  
        document.write("  <script src=\""+url+"\" type=\"text/javascript\">  </script>");  
        }  
    因为你调用这个,执行完得只是writeMethod1的动作,比未执行里面的 <script src=\""+url+"\" type=\"text/javascript\">  </script>,因为这个还未加载完毕,并没有读到他的变化,故而跳过不执行
    而执行下面的语句!methodO();只要不包含延时或者
    <script src=\""+url+"\" type=\"text/javascript\">  </script>这样类型的语句,他就会执行完毕他的代码
    再执行下面的代码,如果含有这类的代码,那么就会出现执行不完毕的现象,但实际他本身的已经执行完,只是那个已经不属于他的!

    问题4、 我通过打印时间的方式(  alert("开始时间"+nowStart);alert("结束时间"+nowEnd);)判断出这几个方法都不是导致时间过长的原因.其中writeMethod2方法作一些业务逻辑。   
    然后Method3方法显示writeMethod2方法加载的那些js数据包的数据!   
    然后用$("xxxxx").innerHTML = value;的方式把js数据包里面的数据显示在叶面上   
    叶面上都有很多div我想是不是用$("xxxxx").innerHTML方式把数值设置到div上耗费的时间太多了啊?   
    有什么加速的方法吗? $("xxxxx").innerHTML方式把数值设置到div上耗费的时间太多了啊
    这个不会这个影响的!赋值而已,影响的应该时是里面的过程而不会是结果赋值
      

  27.   

    对不起!有点钻牛角了啊.....关于这个问题!有什么好的解决办法吗?
    问题4、 我通过打印时间的方式(  alert("开始时间"+nowStart);alert("结束时间"+nowEnd);)判断出这几个方法都不是导致时间过长的原因.其中writeMethod2方法作一些业务逻辑。    
    然后Method3方法显示writeMethod2方法加载的那些js数据包的数据!    
    然后用$("xxxxx").innerHTML = value;的方式把js数据包里面的数据显示在叶面上    
    叶面上都有很多div我想是不是用$("xxxxx").innerHTML方式把数值设置到div上耗费的时间太多了啊?    
    有什么加速的方法吗?  $("xxxxx").innerHTML方式把数值设置到div上耗费的时间太多了啊 
    这个不会这个影响的!赋值而已,影响的应该
    时是里面的过程而不会是结果赋值
     另外延迟时间我设置多少合适呢!设置1行吗?
      

  28.   

    对不起!有点钻牛角了啊.....关于这个问题!有什么好的解决办法吗? 
    问题4、 我通过打印时间的方式(  alert("开始时间"+nowStart);alert("结束时间"+nowEnd);)判断出这几个方法都不是导致时间过长的原因.其中writeMethod2方法作一些业务逻辑。     
    然后Method3方法显示writeMethod2方法加载的那些js数据包的数据!     
    然后用$("xxxxx").innerHTML = value;的方式把js数据包里面的数据显示在叶面上     
    叶面上都有很多div我想是不是用$("xxxxx").innerHTML方式把数值设置到div上耗费的时间太多了啊?     
    有什么加速的方法吗?   $("xxxxx").innerHTML方式把数值设置到div上耗费的时间太多了啊  
    这个不会这个影响的!赋值而已,影响的应该 
    时是里面的过程而不会是结果赋值 
      

  29.   

    对不起!有点钻牛角了啊.....关于这个问题!有什么好的解决办法吗? 
    问题4、 我通过打印时间的方式(  alert("开始时间"+nowStart);alert("结束时间"+nowEnd);)判断出这几个方法都不是导致时间过长的原因.其中writeMethod2方法作一些业务逻辑。     
    然后Method3方法显示writeMethod2方法加载的那些js数据包的数据!     
    然后用$("xxxxx").innerHTML = value;的方式把js数据包里面的数据显示在叶面上     
    叶面上都有很多div我想是不是用$("xxxxx").innerHTML方式把数值设置到div上耗费的时间太多了啊?     
    有什么加速的方法吗?   $("xxxxx").innerHTML方式把数值设置到div上耗费的时间太多了啊  
    这个不会这个影响的!赋值而已,影响的应该 
    时是里面的过程而不会是结果赋值 
      

  30.   

    window.onload=js2(); 
    也可以 
    window.onload = function() { 
             js2(); 
        } 你可以尝试这种方式
    故一定要延时