我对AMD模块的理解(使用例如RequireJs或curl.js)是:
require()
用于异步加载不同的模块,加载后执行回调fn.
要定义模块,您可以使用单独的脚本 define()
但我已经看到一些模块require()
在其函数定义中使用,例如
define([a, b, c], function(i, ii, iii){
require([d, e, f], function(d, e, f) {
// do some stuff with these require()'d dependancies
})
/* rest of the code for this module */
})
Run Code Online (Sandbox Code Playgroud)
但我发现这令人困惑,因为我认为如果一个模块具有依赖性,那么它们应该通过main define([dependancies], fnDefinition)
函数传递,而不是通过require()
上面的例子来实现.
这背后有理由吗?
我有问题试图加载通过requirejs CKEditor的(我试过主要CKEditor的js文件转换成单独的模块,但刚导致所有的地狱冲出重围)等,我现在正在检查,看看是否有一个很这是我错过的简单方法.
我知道requirejs可加载JS正常的脚本,这样也许只是装载ckeditor.js文件(未编辑的,所以它仍然是一个IIFE /自动执行功能) - 会与requirejs或者如果你使用requirejs装载的工作模块,那么整个项目是否需要基于模块?
任何帮助赞赏.
亲切的问候,马克
我有一些文件/文件夹只是不会离开Git临时区域?
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
# (commit or discard the untracked or modified content in submodules)
#
# modified: JavaScript/Stand.ard.iz.er (modified content, untracked content)
# modified: Site (untracked content)
# modified: Template Archives/Template (modified content, untracked content)
# modified: Template Archives/Template_Git (modified content, untracked content)
#
Run Code Online (Sandbox Code Playgroud)
我已经尝试了所有这些"修改"的文件,但没有运气?
我试过了...
git add .
git …
Run Code Online (Sandbox Code Playgroud) 我有我的主要初始化脚本调用require(),其中一个依赖项是一个实用程序框架,但我通过require()指定的其他一些模块本身也将此框架定义为依赖项.
例如(init.js):
require(['module-a', 'module-b', 'module-c'], function(a, b, c){
// where module-c is the framework
});
Run Code Online (Sandbox Code Playgroud)
然后在'module-a'中我有:
define(['module-c'], function(c){
// utilize module-c framework
});
Run Code Online (Sandbox Code Playgroud)
那么AMD/RequireJs如何处理这种情况,它是否加载了两次相同的框架?
任何帮助赞赏.
亲切的问候,马克
注意:我有另一个关于如何使用Ruby的GZIP数据的类似问题zlib
,技术上得到了解答,我不觉得我可以开始改进问题,因为它已被回答,所以尽管这个问题是相关的,但它不一样......
下面的代码(我相信)是GZIP的静态CSS文件并将结果存储在result
变量中.但是我在这个意义上怎么做呢:如何将这些数据发送回浏览器,使其被识别为GZIP而不是原始文件大小(例如,当检查我的YSlow分数时,我想要正确地看到它我确保我GZIP静态资源).
z = Zlib::Deflate.new(6, 31)
z.deflate(File.read('public/Assets/Styles/build.css'))
z.flush
@result = z.finish # could also of done: result = z.deflate(file, Zlib::FINISH)
z.close
Run Code Online (Sandbox Code Playgroud)
...有一点需要注意的是,在我之前的问题中,受访者澄清说Zlib::Deflate.deflate
不会产生gzip编码的数据.它只会生成zlib编码的数据,所以我需要使用等于31 Zlib::Deflate.new
的windowBits
参数来启动gzip流.
但是,当我运行此代码时,我实际上并不知道如何处理result
变量及其内容.互联网(我可以找到)上没有关于如何将GZIP编码的静态资源(如JavaScript,CSS,HTML等)发送到浏览器的信息,这使得页面加载速度更快.看来我读的每篇Ruby文章都是基于使用Ruby on Rails的人!!
任何帮助真的很感激.
我正在阅读David Mark关于js框架"Sencha"的以下分析:https://gist.github.com/3279190并且在那里他声明......
他们想要的是一个全局变量,但他们最终得到的是全局对象的属性.根据规范和(以及实施历史),两者之间存在足够的差异,需要注意不要混淆它们(如此处所做).
...但据我所知,var my_global = 123;
和(在浏览器环境中)之间没有任何区别window.my_global = 123;
(在这个例子中我假设环境是一个浏览器 - 因此使用window
,但我本来可以使用,但this.my_global
显然在不同环境中运行时,全局对象会有所不同.
但忽略这种微小的差异是否将属性分配给全局对象和创建全局变量之间存在差异?我没想过,创建全局变量只是将属性分配给全局对象的另一种方法.
我相信在某些浏览器中如果有一个id为"my_global"的元素可能会出现问题,那么显然可能会导致JavaScript引用正确的问题,但我不确定如何/导致该问题的原因(例如,将属性分配给全局对象导致元素id问题发生,或者是否声明导致元素id问题的全局变量?)
有人可以为我澄清一下吗?
请注意,这是我一直关注的原始文章:http:
//www.markdotto.com/2011/11/02/how-to-deploy-sites-via-github/
为您提供一些背景信息:我们在组织帐户下设置了私人仓库.我们有三个开发人员(包括我自己),他们拥有我们自己的GitHub帐户,并拥有私人仓库的管理员权限.
在处理项目时,我们克隆了repo,然后创建了一个'dev'分支.我们每个人都在我们自己的开发分支工作,并将更改推送到GitHub上的'dev'分支.
我们希望将这个dev分支放到我们的远程服务器上,这样我们就可以在将它合并到我们的主分支(应该是干净的/总是可部署的)之前测试组合代码的工作原理.
从这里我们按照上面的文章步骤通过SSH连接到我们的服务器,转到我们网站托管的相关目录并运行以下命令...
git clone git@github.com:ORGANISATION/REPO.git dev
我们遇到的第一个问题是我们的服务器返回了消息......
Cloning into dev...
ssh: connect to host github.com port 22: Connection refused
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
...我希望它在哪里要求我们输入密码?
所以我们尝试了HTTP网址......
git clone https://USER@github.com/ORGANISATION/REPO.git dev
...当你克隆时,你会发现HTTP网址现在使用我自己的USERNAME.我输入我的密码然后显示,Cloning into dev...
但它显示以下错误...
error: SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://Integralist@github.com/StormCreative/MoneyRepublic.com.git/info/refs
fatal: HTTP request failed
Run Code Online (Sandbox Code Playgroud)
......我不明白这个错误.
那么我们如何将这个私人仓库克隆到我们的服务器上呢?
任何帮助赞赏!
亲切的问候,马克
我第一次学习Backbone.js而且我遇到了一个问题,试图从触发中获取自定义事件(或者从视图中识别出它被触发时)?
您可以在此处查看我的收集代码:https://github.com/Integralist/Backbone-Playground/blob/master/Assets/Scripts/App/main.js#L72-86,初始化时会触发自定义collection:init
事件.
var Contacts = Backbone.Collection.extend({
model: Contact,
initialize: function(){
this.trigger('collection:init');
this.bind('add', this.model_added, this);
},
model_added: function(){
console.log('A new model has been created so trigger an event for the View to update the <select> menu');
}
});
Run Code Online (Sandbox Code Playgroud)
但是后来在我的View中,我正在收听该事件,我无法启动该功能populate
:https://github.com/Integralist/Backbone-Playground/blob/master/Assets/Scripts/App/main. JS#L90-107
var ContactsView = Backbone.View.extend({
initialize: function(){
console.log(contacts.models, 'get initial model data and populate the select menu?');
},
events: {
'collection:init': 'populate',
'change select': 'displaySelected'
},
populate: function(){
console.log('populate the <select> …
Run Code Online (Sandbox Code Playgroud) 我有一个.zshrc
和.vimrc
文件
在我的.zshrc
文件中我有syncfolder="$HOME/Google Drive/Dropbox"
我现在想syncfolder
在我的.vimrc
文件中引用,这是否可能(如果是这样,如何)?
此外,在我的.vimrc
文件中,我正在寻找许多其他文件,我想提高效率.
以下不起作用:
let vimfolder="~/Google Drive/Dropbox/Fresh Install/Shell/vim"
source "$vimfolder/settings.vim"
source $vimfolder/vundle.vim
source $vimfolder/mapping.vim
source $vimfolder/filetypes.vim
source $vimfolder/commands.vim
Run Code Online (Sandbox Code Playgroud)
...我尝试过vimfolder
包含多个变体,$HOME
另一个我尝试从我的.zshrc
文件中导出变量,就像这样......
export SYNCFOLDER=$syncfolder
Run Code Online (Sandbox Code Playgroud)
...希望我可以从我的内部访问它,.vimrc
但它没有用.
有任何想法吗?
每次我在工作时打开终端应用程序时,都会从一个干净的平板开始(例如,它从〜/目录打开).但是在我的笔记本电脑上,我的终端总是会记住我所在的最后一个目录(以及屏幕上的所有命令)并将它们显示给我.
我正努力让这件事发生在我工作的时候,但是我找不到任何关于它的信息(我不知道为什么或者我的笔记本电脑如何设法让自己以这种方式工作?).
我发现的唯一一件事就是我可以更改首选项,以便终端在应用程序启动时执行特定命令,但这不是我想要的(因为我不确定我会运行什么命令当终端打开终端时,让终端转到我正在查看的目录.
有任何想法吗?
谢谢!