小编scr*_*key的帖子

jQuery延迟和承诺 - .then()vs .done()

我一直在阅读jQuery延迟和承诺,我看不出使用.then()&.done()成功回调之间的区别.我知道Eric Hynds提到.done().success()映射到相同的功能,但我猜是这样做的,.then()因为所有的回调都是在成功操作完成时调用的.

任何人都可以请你告诉我正确的用法?

jquery promise jquery-deferred

458
推荐指数
7
解决办法
25万
查看次数

使用JavaScript检测"触摸屏"设备的最佳方法是什么?

我编写了一个jQuery插件,可以在桌面和移动设备上使用.我想知道是否有一种方法可以检测设备是否具有触摸屏功能.我正在使用jquery-mobile.js来检测触摸屏事件,它可以在iOS,Android等上运行,但我也想根据用户的设备是否有触摸屏来编写条件语句.

那可能吗?

javascript jquery touch

392
推荐指数
19
解决办法
35万
查看次数

我应该使用Protractor或Karma进行端到端测试吗?

我应该使用Protractor或Karma进行端到端测试吗?

Angular-seed使用Protractor/Selenium WebDriver进行E2E,但angular-phonecat教程使用业力.

我读到我应该使用Karma进行单元测试,使用Protractor进行E2E,看起来不错,但我想我会在这里要求得到其他开发者的意见.

angularjs protractor

122
推荐指数
1
解决办法
5万
查看次数

我应该使用document.createDocumentFragment还是document.createElement

我正在阅读有关文档片段和DOM重排的内容,并想知道它们看起来有多么document.createDocumentFragment不同,document.createElement因为在将它们附加到DOM元素之前,它们都不存在于DOM中.

我做了一个测试(下面),他们都花了相同的时间(大约95ms).猜测这可能是由于没有任何样式应用于任何元素,因此可能没有回流.

无论如何,基于下面的例子,我为什么要使用createDocumentFragment而不是createElement在插入DOM时使用两者之间的差异.

var htmz = "<ul>";
for (var i = 0; i < 2001; i++) {
    htmz += '<li><a href="#">link ' + i + '</a></li>';
}
htmz += '<ul>';

//createDocumentFragment
console.time('first');
var div = document.createElement("div");
div.innerHTML = htmz;
var fragment = document.createDocumentFragment();
while (div.firstChild) {
    fragment.appendChild(div.firstChild);
}
$('#first').append(fragment);
console.timeEnd('first');

//createElement
console.time('second');
var span = document.createElement("span");
span.innerHTML = htmz;
$('#second').append(span);
console.timeEnd('second');


//jQuery
console.time('third');
$('#third').append(htmz);
console.timeEnd('third');
Run Code Online (Sandbox Code Playgroud)

javascript dom

89
推荐指数
3
解决办法
3万
查看次数

骨干模型上的initialize和constructor之间有什么区别

骨干模型上的initialize和constructor之间有什么区别.

当我扩展骨干模型(ParentModel)时,我使用initialize方法设置任何默认属性.但每当我基于ParentModel创建一个Model时,我都会使用构造函数来运行任何初始功能.我这样做是因为它有效,但有人在工作时问我为什么我同时使用初始化和构造函数,除了它有效之外我没有一个好的答案.我可以花时间阅读源代码来解决这个问题,但在这里提问并获得正确的答案似乎要容易得多.

var ParentModel = Backbone.Model.extend({
  initialize : function() {
    // code here
  },
});


var Model = ParentModel.extend({
  constructor : function (options) {
    Backbone.Model.prototype.constructor.call(this, options);
    // code here
   },
Run Code Online (Sandbox Code Playgroud)

javascript backbone.js

66
推荐指数
2
解决办法
2万
查看次数

使用Jasmine的toHaveBeenCalledWith方法的对象类型

我刚刚开始使用Jasmine,请原谅新手问题但是在使用时是否可以测试对象类型toHaveBeenCalledWith

expect(object.method).toHaveBeenCalledWith(instanceof String);
Run Code Online (Sandbox Code Playgroud)

我知道我可以做到这一点,但它正在检查返回值而不是参数.

expect(k instanceof namespace.Klass).toBeTruthy();
Run Code Online (Sandbox Code Playgroud)

javascript tdd bdd jasmine

57
推荐指数
2
解决办法
6万
查看次数

有没有办法在Git中查看分支上的所有已更改文件?

如果这不是很清楚,但是在Git,我有一种方法可以通过名称查看分支上所有已更改的文件.据我所知,我可以使用git log查看在单个提交中已更改的文件,但我希望看到自创建分支以来已经更改的所有文件,通过多次提交.

有git diff但是这也列出了我想要比较的分支中的已更改文件.我想要一个命令,"显示此分支中所有已更改文件的文件名".

非常感谢

git

23
推荐指数
1
解决办法
2万
查看次数

如何使用JavaScript在DOM节点上查找事件侦听器

我仍然无法相信这是不可能的,但是有一种方法可以循环访问dom并查看使用'addEventListener'附加的所有事件处理程序.这篇文章和许多其他人说没有.

如果是这种情况,那么Chrome的检查员或Firebug等应用程序如何显示它们,他们会这样做?我猜他们可能会以某种方式增加dom的方法,以便他们可以跟踪绑定的内容.

javascript

17
推荐指数
2
解决办法
3万
查看次数

ES6阵列理解不再有效吗?

以下ES6代码段无效.它曾经是有效的.我仍然可以在旧版本的Traceur中运行它,但最新的Babel和Traceur似乎不再喜欢数组中的for循环了.任何人都可以告诉我为什么它不再有效.

let people = [
    {
        "firstName": "Belinda",
        "phone": "1-607-194-5530",
        "email": "dignsissim.Maecenas.ornare@lacusAliquam.co.uk"
    },
    {
        "firstName": "Elizabeth",
        "phone": "1-155-446-1624",
        "email": "cursus.et.magna@nislsemconsequat.edu"
    }
]

let phones = [for({phone} of people) phone];
console.log(phones)
Run Code Online (Sandbox Code Playgroud)

下面的代码片段是有效的ES6,所以我知道for循环内部的破坏是正常的

for(let {phone} of people) {
  console.log(phone)
}
Run Code Online (Sandbox Code Playgroud)

ecmascript-6

17
推荐指数
3
解决办法
5800
查看次数

XmlHttpRequest getAllResponseHeaders()不返回所有标头

我试图从ajax请求获取响应头,但jQuery的getAllResponseHeaders xhr方法只显示"Content-Type"头.谁知道为什么?

这是响应标头
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:If-Modified-Since,Cache-Control,Content-Type,Keep-Alive,X-Requested-With,Authorization
Access-Control -Allow-Methods:GET,PUT,POST,DELETE,OPTIONS
Access-Control-Allow-Origin:*
Access-Control-Max-Age:1728000
授权:apikey ="apikey1"AuthenticationToken ="62364GJHGJHG"
连接:keep-alive
内容-Length:240
Content-Type:application/json; charset = utf-8
X-Powered-By:Express

这是成功的功能

params.success = function (response, textStatus, jqXHR) {
  console.log(jqXHR.getAllResponseHeaders())
}
Run Code Online (Sandbox Code Playgroud)

这就是它记录的
内容...... Content-Type:application/json; 字符集= utf-8的

javascript cors express

14
推荐指数
2
解决办法
4041
查看次数