gpt4 book ai didi

javascript - 使用 requirejs、socketio、backbone 设置 jsfiddle

转载 作者:行者123 更新时间:2023-12-03 05:38:36 26 4
gpt4 key购买 nike

我花了半天多的时间尝试设置一个requirejs,socket.io,backbonejs fiddle ,以解决另一个SO问题。

这是我尝试过的。你可以看看我的fiddle我尝试了几种方法但没有运气。

  1. 我已经像这样在头部加载了脚本。

  <head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.2/require.js"></script>
<script>
requirejs.config({
paths: {
'socket.io': ['https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.5.1/socket.io.js'],
'jquery': ['https//cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js'],
'underscore': ['https//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js'],
'backbone': ['https//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js']
},
shim: {
'backbone': ['underscore']
},
waitSeconds: 3
});
</script>
</head>

<body>
<div id='page'>
<div id='incomingChatMessages'>

</div>
</div>
</body>
</html>
  • 这是我尝试在 js 组件中加载脚本的方法

    requirejs.config({
    paths: {
    'socket.io': ['https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.5.1/socket.io.js'],
    'jquery': ['https//cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js'],
    'underscore': ['https//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js'],
    'backbone': ['https//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js']
    },
    shim: {
    'backbone': ['underscore']
    },
    waitSeconds: 3
    });

    var io = require('socket.io')
    var $, Backbone;
    require(['jquery', 'underscore', 'backbone'], function(jq, us, bb) {
    $ = jq;
    Backbone = bb;
    });
    Backbone.$ = $;
  • 这里是 link由在 jsfiddle 中使用 requirejs 加载 jquery 的人编写,但这只能部分解决我的问题

  • 最佳答案

    很多错误。

    1. 您根本不应该为此使用 HTML 窗口。你可以把所有东西都放在JS窗口中。

    2. 您不应将 .js 扩展名放入路径中。

    3. 无需对代码使用后备,paths 中的值应该是字符串而不是数组。

    4. 您的路径中的网址存在拼写错误。

    5. 这行var io = require('socket.io')无法工作。这是 RequireJS,而不是 CommonJS。这样的调用可以define调用中工作。

    6. Backbone 已经有一段时间不需要 shim 了。你的垫片毫无用处。

    7. 您不需要执行Backbone.$ = $

    8. 由于历史原因,jQuery 和 Backbone 都渗入了全局空间。因此您不必手动执行此操作。

    这是清理后的 JS:

    requirejs.config({
    paths: {
    'socket.io': 'https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.5.1/socket.io',
    'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min',
    'underscore': 'https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min',
    'backbone': 'https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min'
    },
    waitSeconds: 3
    });


    require(['jquery', 'underscore', 'backbone', 'socket.io'], function(jq, us, bb, io) {
    console.log($, Backbone.$, Backbone);
    });

    请注意 console.log 如何依赖于全局空间中的 $Backbone

    还有一个fork你的 fiddle 。

    关于javascript - 使用 requirejs、socketio、backbone 设置 jsfiddle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40638142/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com