我正在使用requirejs + jquery + jqueryui.我已经阅读了很多关于如何做到这一点的例子.我想我了解各种方法,在我看来,我的设置应该正常工作.但是,我偶尔会在依赖于jquery-ui的自定义模块中获得$ .widget未定义的错误.这是一种痛苦,因为它不一致且难以复制,因此我很难测试其他方法.
我没有填充所有的jquery插件,因为有很多.相反,我正在使用单独的requirejs调用加载jquery.然后,在回调中,我加载其余的东西.这样我就不必维护所有jquery插件的填充程序列表.
对于jquery-ui,我使用垫片使其依赖于jquery.然后我使用小部件工厂的所有自定义模块在其依赖项列表中都有"jquery-ui".
在我的模板中......
requirejs.config({
baseUrl: ATHLETE.siteConfig.jsBaseUrl,
paths: {
'jquery': '//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min',
'jquery-ui': '//ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min'
},
shim: {
"jquery-ui": ['jquery']
},
waitSeconds: 15
});
requirejs(['jquery'], function($) {
requirejs(['site'], function() {
requirejs(['mypage']);
});
});
Run Code Online (Sandbox Code Playgroud)
请注意,我在mypage.js之前加载site.js. 他们有一些共享的依赖项.在我的构建配置中,我从mypage.js中排除了site.js,因此共享依赖项被编译到site.js而不是mypage.js.因此,我需要在加载mypage.js之前完全加载site.js,否则require可能会尝试单独加载这些共享依赖项.
这是我的一个示例自定义模块,它依赖于jquery-ui.
define([
'jquery',
'jquery-ui'
],function($) {
$.widget('ui.viewAllSponsorsWidget', $.ui.dialog, {
options: {
autoOpen: false,
dialogClass: 'view-all-sponsor-dialog-wrap',
draggable: false,
modal: true,
resizable: false,
width: 370,
height: 400
}
});
});
Run Code Online (Sandbox Code Playgroud)
错误$ .widget未定义是由此的第5行和我的类似自定义模块引起的.再次,它真的不一致,很难再现.通常情况下,即使清除缓存,我也不会收到错误.任何人都可以想到在jquery-ui完全加载之前第5行可能会被执行的方式吗?
更新2013年8月16日
我已经能够跟踪这一点了.我创建了一个依赖于jquery和jquery-ui的简单模块.
define([
'jquery',
'jquery-ui'
],function($) {
console.log('$.widget is …Run Code Online (Sandbox Code Playgroud) 我遵循了以下说明:
https://gist.github.com/jarutis/ff28bca8cfb9ce0c8b1a
但是当我尝试时:
测试文件中的THEANO_FLAGS = device = opencl0:0 python test.py 我收到错误:
错误(theano.sandbox.gpuarray):pygpu已配置但无法导入Traceback(最近一次调用最后一次):文件"/home/mesayantan/.local/lib/python2.7/site-packages/theano/sandbox/gpuarray/init .py",第20行,in
import pygpu
Run Code Online (Sandbox Code Playgroud)
文件"/ usr/src/gtest/clBLAS/build/libgpuarray/pygpu/init .py",第7行,in
from . import gpuarray, elemwise, reduction
Run Code Online (Sandbox Code Playgroud)
文件"/usr/src/gtest/clBLAS/build/libgpuarray/pygpu/elemwise.py",第3行,in
from .dtypes import dtype_to_ctype, get_common_dtype
Run Code Online (Sandbox Code Playgroud)
文件"/usr/src/gtest/clBLAS/build/libgpuarray/pygpu/dtypes.py",第6行,in
from . import gpuarray
Run Code Online (Sandbox Code Playgroud)
ImportError:无法导入名称gpuarray
我没有好主意.我是第一次使用这些.我正在研究Ubuntu 14.04 LTS.我该如何解决这个错误?
问题1:
为什么我需要在网页中异步加载我的JavaScript文件?我可以在服务器端看到它的基本原理,但如果我知道我需要在客户端加载的所有文件,为什么我不应该将所有源文件连接成1个文件并在页面加载时加载?第一个初始页面加载是否如此重要,以至于由于检索每个JS文件的延迟而导致未来的操作可能会变慢?
问题2:
假设问题1的答案是我需要单独加载JS文件:
AMD异步加载每个JS文件,CommonJS同步加载.服务器端加载需要CJS(如果我没有弄错的话,这就是Node.js的工作方式).AMD似乎更适合客户.因此,在客户端中使用CJS的唯一原因是与服务器共享代码.
有没有办法让AMD和CJS发挥得很好,以便客户端JS文件可以异步加载但仍然具有CJS语法?
(究竟是什么require.js呢?我不能为我的生活在他们的网站上的线条之间阅读.)
在我的grunt.js文件中,我有
requirejs: {
dist: {
options: {
almond: true,
wrap: true,
modules: [{name: 'main'}],
mainConfigFile: "src/js/main.js",
baseUrl: "src/js",
dir: "tmp/js",
inlineText: true,
preserveLicenseComments: false
}
}
}
Run Code Online (Sandbox Code Playgroud)
运行使用一些缩小的文件grunt requirejs:dist填充tmp/js目录 - 其中包括一个大的main.js文件(所有内容似乎都按预期捆绑在此文件中) - 但是当我想要包含此文件时
<script type="text/javascript" src="tmp/main.js"></script>
Run Code Online (Sandbox Code Playgroud)
它导致了 "Uncaught ReferenceError: define is not defined"
使用杏仁的意图是我不需要加载require.js文件来加载我的opimized文件 - 任何想法如何让它工作?
脚注:我已经设法这样做,除了之前main-built.js已经编译了一个文件,但是这似乎不再是这种情况了(更新... -.-)
基本上,我们的想法是"sub"模块创建一个对象,该对象应该是作为"主要"模块的实用程序库的一部分.但是,"sub"对象依赖于"main"中的实用程序:
// Main module
define(['sub'], function(sub) {
var utils = {
utilityMain: function () {
// ...
};
// ...
};
tools.subModule = sub;
return tools;
});
// Sub module
define(['main'], function(main) {
return new (function () {
// Singleton object using functions in main module
var somestuff = function () {
main.utilityMain();
// etc
};
})();
});
Run Code Online (Sandbox Code Playgroud)
我如何通过require.js实现这一目标,而不会产生吞噬整个星球的黑洞?
非常感谢你.
RequireJS设置的大多数示例,将配置对象放在main.js入口点,如下所示:
//main.js
require.config({
"paths": {
//libs
"lib1": "assets/js/lib/lib1",
"lib2": "assets/js/lib/lib2",
"lib3": "assets/js/lib/lib3",
"lib4": "assets/js/lib/lib4"
}
});
//start the app
define(["lib1"], function(lib1){/*start the app*/});
Run Code Online (Sandbox Code Playgroud)
我更喜欢将配置对象放在一个单独的文件中,因为随着它的增长,很难在同一个文件中维护.
当我在浏览器中运行它时,以下设置有效,但由于某种原因,我在运行r.js优化器时遇到错误:
//config.js
define({/*all configuration here*/});
//main.js
define(["config", "require"], function(config, require){
requirejs.config(config); //set configuration
require(["app"]); //launch app, where "app" path is defined in config.js
});
Run Code Online (Sandbox Code Playgroud)
当我运行r.js时,我收到以下错误:
*跟踪:main的依赖关系
错误:ENOENT,没有这样的文件或目录'C:\ Work\project\target\app.js*
所以似乎r.js没有得到配置设置,因为它正在寻找app.js作为相对脚本,而不是具有已定义路径的模块.
这是我的build.js文件(appDir,dir和mainConfigFile是相对于build.js文件):
({
appDir: "../src",
baseUrl: ".",
dir: "../target",
mainConfigFile: "../src/main.js",
findNestedDependencies: true,
modules: [
{
name: "main"
}
]
})
Run Code Online (Sandbox Code Playgroud) 生成的操作码:
or ebx, 0ffffffffh
Run Code Online (Sandbox Code Playgroud)
与NASM是:
83CBFF
Run Code Online (Sandbox Code Playgroud)
但在英特尔说明手册中:
81 /1 id OR r/m32, imm32
83 /1 ib OR r/m32, imm8
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么NASM使用操作码83代替81,以及如何生成操作码81?
这是NASM的命令行: nasm -fwin32 file.asm -l list.lst
我目前正在尝试使用 Windows 10 上的 FFmpeg 在带有内置网络摄像头的联想笔记本电脑上录制视频。我的目标之一是尽可能降低 CPU 使用率,这就是为什么我想将 h264 编码推送到图形处理器。现在我的笔记本电脑有点棘手。因为它使用了两个 GPU。第一个 GPU 是作为 CPU 一部分的 Intel HD 5500 图形单元。这个最有可能用于非要求的应用程序,如办公室等,以节省能源。另一个是 AMD R5 M330,将用于游戏等图形密集型应用程序。
目前,我正在使用以下命令对 Intel HD GPU 上的网络摄像头流进行编码:
ffmpeg -f dshow -vcodec mjpeg -video_size 1280x720 -framerate 30 video="Lenovo EasyCamera":audio="Mikrofon (Realtek High Definition Audio)" -c:v h264_qsv -g 60 -q 28 -look_ahead 0 -preset:v faster -c:a aac -q:a 0.6 -r 30 output.mp4
Run Code Online (Sandbox Code Playgroud)
到目前为止这确实有效,但似乎这个 GPU 没有足够的能力来跟上更高比特率或大量 i 帧的帧率。视频开始缺帧和跳帧。如果我使用 CPU 编码,一切正常。
既然我的笔记本电脑获得了第二个 AMD GPU,它的功率要大得多,尝试在那个 GPU 上进行编码会很不错,但我找不到有关如何在 Windows 10 上的 AMD 硬件上进行编码的任何信息。所以我的问题是: ffmpeg 命令如何使用 AMD 硬件进行 …
我已经了解了不同的缓存映射技术,如直接映射,关联映射和集合关联映射技术,还学习了权衡.但我很好奇现在在intel core i7或AMD处理器中使用了什么.以及这些技术是如何演变的.还有哪些事情需要改进?
ng2-charts.js 依赖于'chart.js'。CommonJS 或 AMD 依赖项可能会导致优化救助。
有关更多信息,请参阅:https : //angular.io/guide/build#configuring-commonjs-dependencies