Php 如果javascript文件不重新加载,如何编写代码?

Php 如果javascript文件不重新加载,如何编写代码?,php,javascript,jquery,load,Php,Javascript,Jquery,Load,我有一个网页,php和javascript。有时,javascript文件不加载,那么我的页面将正常工作 我有5个javascript文件(jQuery插件),我想知道: 如何改进JavaScriptLoader 如果脚本文件加载不正确,如何重新加载脚本文件 我已经检查了当php页面加载超过10秒时,页面将被破坏 谢谢提示#1: 在页面末尾加载Javascript文件 Javascript不需要很快通过HTTP发送,因为它只用于加载页面后的动态更改 移动: var _gaq=_gaq | |[

我有一个网页,php和javascript。有时,javascript文件不加载,那么我的页面将正常工作

我有5个javascript文件(jQuery插件),我想知道:

  • 如何改进JavaScriptLoader
  • 如果脚本文件加载不正确,如何重新加载脚本文件
  • 我已经检查了当php页面加载超过10秒时,页面将被破坏

    谢谢

    提示#1:

    在页面末尾加载Javascript文件

    Javascript不需要很快通过
    HTTP
    发送,因为它只用于加载页面后的动态更改

    移动:

    
    var _gaq=_gaq | |[];
    _gaq.push([''设置帐户','UA-16476667-10']);
    _gaq.push([''u trackPageview']);
    (功能(){
    var ga=document.createElement('script');ga.type='text/javascript';ga.async=true;
    ga.src=('https:'==document.location.protocol?'https://ssl' : 'http://www“)+”.google analytics.com/ga.js';
    var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(ga,s);
    })();
    函数fireWhenReady(){
    if(函数类型1!=“未定义”){
    功能1();
    }
    否则{
    设置超时(FirehenReady,100);
    }
    }
    $(文档).ready(fireWhenReady);
    
    到页面底部

    提示#2:

    此外,请尝试在两个版本中维护Javascript代码:

  • Sandbox
    :您的代码版本被很好地划分为模块
  • Release
    :该网站的代码版本,将所有代码放在一个Javascript文件中,并使用类似YUI压缩程序的东西进行缩小。这会相应地减少
    HTTP请求的数量,从而减小文件大小并提高加载速度
  • 提示#3:

    替换:

    与:

    如今,大多数用户都缓存了jQuery的GoogleAPI版本,因此这比在手上加载版本要快得多


    祝你好运

    代码看起来很整洁


    但是我会将$(document).ready()脚本放在
    中,并将css和javascript加载分组。

    查看注释并猜测您可能遇到的问题,我认为您的场景是:

  • 您正在PHP中设置一个JavaScript变量,并使用它。所有脚本都依赖于此变量,因此需要将其加载到
    head
  • 由于延迟,事情没有按顺序执行
  • 如果以上是正确的,那么我认为以下可能会起作用

  • 在head中使用JavaScript并声明名称空间,如
    var MyBook;MyBook.chapterId=
    。但是,在body标记结束之前,将所有其他代码作为最后一个脚本文件移动
  • 另外,加载
    $(document).ready(function(){})
    ,并在那里使用
    MyBook.chapterId
    。您现在可以将其用于AJAX调用,或者使用一个函数来加载章节,并将此变量传递给该函数

  • 嗯,将脚本放在标题中不是更好吗?从语义上讲,实际上这个页面在JavaScript上有很大的依赖性,所以我不能在底部加载它,因为它会在第一次加载时破坏页面的布局。嗨,Danial,只有当你的页面在整个正文中都需要JavaScript时,才是这种情况。尽可能将所有Javascript放在页面的末尾,您就不会有问题了。@Maresh将脚本放在文档的末尾与语义无关。这纯粹是为了更好的性能和更好的用户体验,因为脚本会阻止文档其余部分的下载。但是在这里,整个导航需要javascript,所以我想他可以避免加载问题。正确的代码很简洁,因为客户端至少更改了三次代码的结构!!哦,你是在同一时间加载这本书的每一页吗???你能用ajax来做吗,这会大大减少加载时间!!您如何尝试使用google chrome开发工具->网络监视器查看正在发生的事情。它打赌这只是一个超时。是的,页面负载很重,以前是5.3MB,后来我减少到3.3MB。
        <script  type="text/javascript" src='src/jquery_1.7.min.js' ></script>
        <!-- fancybox -->
        <!--<script type="text/javascript" src="src/jquery.mousewheel.js"></script>-->
        <script type="text/javascript" src="src/jquery.fancybox.js?v=2.0.6"></script>
        <script type="text/javascript" src="helpers/jquery.fancybox-buttons.js?v=1.0.2"></script>
        <script type="text/javascript" src="helpers/jquery.fancybox-thumbs.js?v=1.0.2"></script>
        <script type="text/javascript" src="helpers/jquery.fancybox-media.js?v=1.0.0"></script>
        <script type="text/javascript">
            var _gaq = _gaq || [];
            _gaq.push(['_setAccount', 'UA-16476667-10']);
            _gaq.push(['_trackPageview']);
            (function() {
                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
            })();
    
            function fireWhenReady() {
                if (typeof function1 != 'undefined') {
                    function1();
                }
                else {
                    setTimeout(fireWhenReady, 100);
                }
            }
            $(document).ready(fireWhenReady);
        </script>