javascript - 求require.js玩的6大神来看看这个奇葩的问题到底怎么回事
阿神
阿神 2017-04-11 11:36:56
0
2
341

首选,用的require是2.11版本的,下面是版本信息
RequireJS 2.1.11 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved.

首先,我在页面的head部分引入了require.js并且写了它的config配置项,代码如下

require.config({
        baseUrl: "js",
        paths:{
        "jquery":"jquery-1.12.1.min",
        "unslider":"unslider",
        "common":"common",
        "index":"index"
        },
        shim:{
            "unslider": {
                deps: ["jquery"],
                exports:'unslider'
            },
            "common": {
                deps: ["jquery","unslider"],
                exports:'common'
            },
            "index":{
                deps:["jquery","unslider","common"],
                exports:'index'
            }
        }
    });
    //共计四个JS文件,关系如下
    //jq>unslider>common>index

然后我在页面的底部又重新引入了一个JS文件 代码如下

require(['jquery','unslider','common','index'],function(){
                alert("加载完成")
            })
            //仅仅只写了加载的方法

本来最开始我是将这段require的方法是写在页面底部的,并没有给script标签写src属性,但是因为JS文件异步加载的问题会导致浏览器报错$ is not defind

接下来神器的事情就发生了,

但是,当我多按几次F5刷新浏览器的时候,就会是这样

然而又没有报错了,页面的所有效果全部正常显示,我也是醉了,求个大神解释一下这到底是怎么回事。
可以的话再给我讲讲你们在使用JS模块化加载的框架的一些心得,以及在一个项目中应该怎么去使用

阿神
阿神

闭关修行中......

répondre à tous(2)
小葫芦

看样子你的indexcommon两个文件里,分别直接使用了变量jQuery$吧?

既然模块化了,是不是要引入一下?

define(['jquery'], function ($) {

    //引入再使用
    $(document).on('click', function(e){
        alert(e);
    });
});
大家讲道理

我也遇过一样的问题,当时卡了两天也没解决,转战 webpack 了

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!