小编jAn*_*ndy的帖子

jQuery UI Slider(以编程方式设置)

我想在飞行中修改滑块.我尝试使用

$("#slider").slider("option", "values", [50,80]);
Run Code Online (Sandbox Code Playgroud)

此调用将设置值,但元素不会更新滑块位置.调用

$("#slider").trigger('change');
Run Code Online (Sandbox Code Playgroud)

也没有帮助.

是否有另一种/更好的方法来修改值和滑块位置?

jquery jquery-ui

74
推荐指数
4
解决办法
11万
查看次数

我可以为特定功能禁用ECMAscript严格模式吗?

我在MDC或ECMAscript规范中没有找到关于我的问题的任何内容.可能有人知道一种更"笨拙"的方法来解决这个问题.

我正在调用"use strict"我环境中的每个javascript文件.我的所有文件都是这样开始的

(function(win, doc, undef) {
    "use strict";

    // code & functions
}(window, window.document));
Run Code Online (Sandbox Code Playgroud)

现在,我有一个处理错误的自定义函数.该函数使用该.caller属性来提供上下文堆栈跟踪.看起来像这样:

var chain = (function() {
    var _parent = _error,
        _ret = '';

    while( _parent.caller ) {
        _ret += ' -> ' + _parent.caller.name;
        _parent = _parent.caller;
    }

    return _ret;
}());
Run Code Online (Sandbox Code Playgroud)

但是,当然,在严格模式下.caller是一个不可删除的道具,在检索时抛出.所以我的问题是,是否有人知道如何禁用更严格的"功能明智"?

"use strict";在被调用之后被所有函数继承.现在我们有可能在特定函数中使用严格模式,只需调用它们"use strict";的顶部,但有没有办法实现相反的目的?

javascript ecma262 ecmascript-5 strict-mode

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

AJAX跨域调用

我知道AJAX跨域策略.因此,我不能仅通过ajax HTTP请求调用" http://www.google.com "并在我的网站上的某处显示结果.

我尝试使用dataType"jsonp",它实际上会工作,但我得到一个语法错误(显然因为收到的数据不是JSON格式化)

是否还有其他可能从外部域接收/显示数据?iFrame遵循相同的政策?

javascript ajax jquery json jsonp

65
推荐指数
4
解决办法
14万
查看次数

你什么时候使用Object.defineProperty()

我想知道什么时候应该使用

Object.defineProperty
Run Code Online (Sandbox Code Playgroud)

为对象创建新属性.我知道我能够设置类似的东西

enumerable: false
Run Code Online (Sandbox Code Playgroud)

但你什么时候需要这个呢?如果你只是设置一个属性

myObject.myprop = 5;
Run Code Online (Sandbox Code Playgroud)

它的描述符都设置为true,对吧?当你们使用.defineProperty()的相当冗长的调用以及出于什么原因时,我实际上更好奇.

javascript ecmascript-5

61
推荐指数
6
解决办法
1万
查看次数

Javascript IN运算符兼容性

有人可以告诉我,哪个ECMA版本的IN运算符可用以及哪些浏览器(版本)支持它?

说明:

IN运算符可以像下面这样使用:

var myObject = {
    Firstname: 'Foo',
    Lastname: 'Bar'
};

if('Lastname' in myObject){
    // Lastname is an attribute of myObject
}
Run Code Online (Sandbox Code Playgroud)

javascript ecma262

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

拖动和调整CSS转换元素的大小

例如,如果我们-vendor-transform: rotate(40deg)在矩形上设置一个 css属性<div>,所有突然拖动和调整大小都会变得非常奇怪和有缺陷.

这是一个简单的jQueryUI示例:http://jsfiddle.net/Ja4dY/1/

您会注意到,如果在转换时拖动或调整该矩形的大小,它将向上或向下跳跃,并且光标将不会保留在正确的位置.在我的真实代码中,我使用自定义代码来调整大小和拖动,但是我遇到了同样的问题.

当然,"问题"是元素的方向会发生变化.因此,左可右,上得底部和其间的东西和JavaScript代码仍然处理,因为它会在每个方向不会改变.

那么,问题是:我们如何补偿变换/旋转元素?

任何好的资源/书籍/博客也非常受欢迎.

javascript css jquery transform css3

43
推荐指数
3
解决办法
9599
查看次数

分块WebSocket传输

因为我在更常规的基础上使用WebSocket连接,所以我对如何在幕后工作感兴趣.所以我在一段时间内深入研究了无穷无尽的规范文档,但到目前为止,我还无法找到任何有关分块传输流本身的信息.

WebSocket协议将其称为数据帧(描述纯数据流,因此也称为非控制帧).据我了解规范,没有定义的最大长度和没有定义的MTU(最大传输单位)值,这反过来意味着单个WebSocket数据框可能包含spec(!),无限量的数据(如果我在这里错了,请纠正我,我仍然是这方面的学生).

阅读完之后,我立即设置了我的小Node WebSocket服务器.由于我有一个强大的Ajax历史(也在流媒体和Comet上),我的期望原来就像是," 在传输数据时必须有某种交互模式来读取数据 ".但那里我错了,不是吗?

我开始时很小,有4kb的数据.

服务器

testSocket.emit( 'data', new Array( 4096 ).join( 'X' ) );
Run Code Online (Sandbox Code Playgroud)

并且像预期的那样,它作为一个数据块到达客户端

客户

wsInstance.onmessage = function( data ) {
    console.log( data.length ); // 4095
};
Run Code Online (Sandbox Code Playgroud)

所以我增加了有效载荷,我实际上再次期待,在某些时候,客户端onmessage处理程序将重复发射,effectivley分组传输.但令我震惊的是,它从未发生过(节点服务器,在firefox,chromesafari客户端测试).我最大的有效载荷是80 MB

testSocket.emit( 'data', new Array( 1024*1024*80 ).join( 'X' ) );
Run Code Online (Sandbox Code Playgroud)

它仍然存在于客户端的一个大数据块中.当然,即使你有一个非常好的连接,这需要一段时间.这里的问题是

  • 是否有可能将这些流分块,类似于XHR readyState3模式
  • 单个ws数据框有任何大小限制吗?
  • 不应该传输如此大的有效载荷的websockets?(这会让我再次想知道为什么没有定义的最大尺寸)

我可能仍然从WebSockets的错误角度看,可能是发送大量数据的需要不存在,你应该在发送之前自己逻辑地分块/拆分任何数据?

javascript specifications websocket node.js

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

Javascript /垃圾收集器中的循环引用

有人可以详细解释Javascript引擎如何处理循环引用?浏览器甚至node.js之间有很大的区别吗?

我所说的是对象内部的显式反向/下一个引用.例如:

var objA = {
    prop: "foo",
    next: null
};

var objB = {
    prop: "foo",
    prev: null
};

objA.next = objB;
objB.prev = objA;
Run Code Online (Sandbox Code Playgroud)

我们走了.如果我们这样做,console.log( objA )我们可以看到我们创造了一个无限链.最大的问题是,这是不是很糟糕?未明确清除时是否会造成内存泄漏?

所以我们必须这样做

objA.next = null;
objB.prev = null;
Run Code Online (Sandbox Code Playgroud)

或者垃圾收集者会照顾我们这样的星座吗?

javascript garbage-collection memory-leaks circular-reference

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

从Array中删除未定义的值

在某些情况下,可能会发生我们在Array结构中具有undefined或通常为值的情况.例如,从数据库或HTML结构等未知来源读取和填充数据时.喜欢

var data = [42, 21, undefined, 50, 40, undefined, 9]
Run Code Online (Sandbox Code Playgroud)

因为在循环这些数组并处理元素时可能会造成麻烦,删除undefined(伪造值)的最佳做法是什么?

javascript arrays filter

29
推荐指数
8
解决办法
5万
查看次数

requireJS优化器不包含嵌套的require调用

我正在阅读优化器文档很长一段时间,但似乎我无法理解它.医生说:

优化器将仅结合了在字符串文字的数组传递给顶层规定指明模块,并定义呼叫,否则需要在简化的CommonJS的包裹("姓名")字符串文字呼叫.因此,它不会找到通过变量名加载的模块:

好到目前为止一切顺利.这基本上意味着r.js不会包含也不会爬网嵌套依赖项.现在假设我们有一个"主应用程序"文件,如下所示:

require([ 'es5shim', 'tools' ], function() {
    console.log('fictive app entry point');

    require([ 'domready!' ], function( doc ) {
        console.log('domReady, loading GUI modules...');
        require([ 'GUI/window', 'GUI/header', 'GUI/content' ]);
    });
});
Run Code Online (Sandbox Code Playgroud)

我想问题在这里变得非常明显.r.js(优化器)仅通过链接es5shim.js和创建该文件tools.js.有没有什么好的办法/解决方法告诉优化,它也应该链接的window.js,header.jscontent.js文件中的例子吗?

当然domReady,这个实例中的插件会被加载,最终会执行回调,但看起来这里的结构本身会阻止优化器完成它的工作.

问题是:

  • 如果我只是列出"Top require call"中的所有模块,那么r.js是否还包括+链接所有top require以及define从嵌套和嵌套嵌套模块到main-app文件的调用?

  • 他们在文档中提到了r.jsinclude选项.它在这里是否有意义,如果是,如何正确调用它?

当然,你不想失去的选项后,在延迟加载的模块,但是对于这种依赖(等待DOMContentLoaded),我希望有一种方式来变通方法.

javascript requirejs

24
推荐指数
1
解决办法
4678
查看次数