javascript - 最小化 html 中的 javascript 代码

标签 javascript jquery

我正在使用 jquery 和多个脚本,这些脚本需要 HTML 文档中的 javascript 才能正常运行(谢谢 web 2.0)。我正在使用 ajax 来发布,$(document).ready 来运行函数和其他多个事件等。我正在使用 googles minify 来帮助缩短运行 javascript 所需的外部 javascript 文件的加载时间HTML。我在构建/格式化我的 javascript 时也遇到了麻烦。

我的问题如下:

  • 如何最大限度地减少 HTML 文档中的代码?
  • 是否可以将HTML文档中的javascript链接到外部 即使它需要 $(document).ready,就像我下面的示例一样?
  • 有什么好的网站或教程可以帮助我正确格式化 我的 jquery/javascript 因为我很清楚这是不正确的,这有助于加载时间吗?

下面是我运行多个脚本的页面示例(请随意正确格式化)以及我想要外部链接和正确结构的示例。我并不是要求任何人为我做我的工作,而是只是引导我走向正确的方向。

<script type="text/javascript" src="lib/js/jquery.nivo.slider.js"></script>
<script type="text/javascript" src="lib/js/jquery.fancybox.js"></script>
<script type="text/javascript" src="lib/js/jquery.jcarousel.min.js"></script>

<script type="text/javascript">

    //nivo
    $(window).load(function() { 
        $('#slider').nivoSlider({ effect: 'slideInLeft', pauseTime: 5000 });
    }); 

    //fancybox
    $(document).ready(function() {
        $('.fancybox').fancybox();
        $.fancybox.open($("#welcome"), { padding : 0 });
    });

    //subscribe
    $("#footer-subscribe-show-hide").click(function () {
        $("#footer-subscribe").animate({width:'toggle'},300);
        $(this).show("#subscribe");
    });  

    //responsive
    $(function() { 
        $('.menu-mobile-drop').click(function() {
            $('.menu-mobile').toggle(); 
        });
    });
    $(".menu-wrap").click(function() { 
        $(this).find('img').toggle();
    });

    //subscriptionAjax
    $("#subscriber").submit(function(event) {
        event.preventDefault();
        $("#footer-subscribe").fadeOut();
        var values = $(this).serialize();
        $.ajax({ 
            url: "include/subscribe.php",
            type: "post",
            data: values,
            success: function(){
                $("#footer-subscribe")
                .html(
                    "<div class='subscription-success'>You're now subscribed!</div>"
                )
                .fadeIn('slow');
            },
            error: function(){
                alert("failure"); 
                $("#footer-subscribe").html('there is error while submit');
            } 
        });
    });

    //jcarousel
    function mycarousel_initCallback(carousel) {
        carousel.clip.hover(function() { 
            carousel.stopAuto();
        }, 
        function() {
            carousel.startAuto();
        });
    };
    jQuery(document).ready(function() {
        jQuery('#mycarousel').jcarousel({
            auto: 8,
            wrap: 'last',
            initCallback: mycarousel_initCallback
        });
    });

</script>

最佳答案

要最大限度地减少 HTML 中的 JavaScript,只需将其全部保留在 HTML 之外即可。

如果您需要在页面上编写一些脚本,您应该添加 <script src=""></script>元素。没有理由直接在页面上包含任何原始 JavaScript。

如果需要选择某个元素,请充分利用 [data-*] attributes 、选择器和迭代:

$('[data-foo]').each(function () {
    var $this,
        data;
    $this = $(this);
    data = $this.data('foo');
    $this.foo(data);
});

关于javascript - 最小化 html 中的 javascript 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17997039/

相关文章:

javascript - HTML 对象元素和滚动条问题

javascript - 无法根据下拉列表选择禁用文本输入

javascript - 如何从 Node 中的图片 url 将图片上传到 Google Cloud Storage?

javascript - 向下滚动后在右下角显示 toast ( Bootstrap 5)

javascript - 如何在单独的框架中打开文本框中的网址?

javascript - 请求的资源上不存在 Access-Control-Allow-Origin header

javascript - 光滑 slider 通过单击按钮播放视频

Jquery:遍历一个表来找到一个值的出现并更改行css

javascript - 单击按钮获取下一个/上一个 ID

javascript - 使用递归重建 n 层对象/数组