看看三原色是红黄蓝(RYB),为什么显示器和几乎所有的GUI组件都使用红绿蓝(RGB)?(如果我没弄错的话,打印机会使用ryb模型.)
是否有历史,硬件/软件或其他原因?
为了有一个能够在浏览器中运行任意javascript代码的接口,而没有像典型的妈妈玩笑那么大的安全漏洞,Esailija建议使用Web Workers.它们在半沙盒环境中运行(没有DOM访问并且已经在浏览器中)并且可以被杀死,因此用户无法将它们置于无限循环中.
以下是他提出的例子:http://tuohiniemi.fi/~runeli/petka/workertest.html(打开你的控制台)
jsfiddle(仅限谷歌浏览器)
现在,这似乎是一个很好的解决方案; 然而,它是完整的(或接近完整的)吗?有什么明显缺失的吗?
整个事情(因为它连接到机器人)可以在github上找到:worker,evaluationator
主要:
workercode = "worker.js";
function makeWorkerExecuteSomeCode( code, callback ) {
var timeout;
code = code + "";
var worker = new Worker( workercode );
worker.addEventListener( "message", function(event) {
clearTimeout(timeout);
callback( event.data );
});
worker.postMessage({
code: code
});
timeout = window.setTimeout( function() {
callback( "Maximum execution time exceeded" );
worker.terminate();
}, 1000 );
}
makeWorkerExecuteSomeCode( '5 + 5', function(answer){
console.log( answer ); …Run Code Online (Sandbox Code Playgroud) 在C语言(或基于C语言)中,人们可以愉快地使用这个语句:
#include "hello.h";
Run Code Online (Sandbox Code Playgroud)
瞧,每个功能和变量都hello.h可以自动使用.
但它实际上做了什么?我查看了编译器文档和教程并花了一些时间在线搜索,但我可以形成的关于魔法#include命令的唯一印象是它"复制粘贴"内容hello.h而不是该行.不仅如此,还有更多.
据我所知到目前为止:Javascript是单线程的.如果您推迟执行某些过程,则只需安排它(将其排队)以在下次线程空闲时运行.但Async.js定义了两种方法:Async::parallel & Async::parallelLimit和我引用:
并行运行一系列函数,无需等到上一个函数完成.如果任何函数将错误传递给其回调...
与并行相同,只有任务与任何时间执行的最大"限制"任务并行执行.
至于我对英语的理解,当你说:"并行完成任务"意味着同时进行 - 同时进行.
Async.js如何在一个线程中并行执行任务?我错过了什么.
javascript parallel-processing asynchronous node.js async.js
String.prototype.foo = {};
String.prototype.foo.bar = function() {
//How can you reference the "grandparent" string?
console.log(this.parent.parent); //obviously, doesn't exist
}
Run Code Online (Sandbox Code Playgroud)
如同,"Hello, Nurse!".foo.bar()将记录"你好,护士!".
如果对foo有控制权会有所作为吗?
编辑:在那里,定义了foo.
EDIT2:精细的,而不是this.this.this,this.parent.parent.当然父母不存在,但希望现在语义不会妨碍.
编辑3:没有具体案例.提供的细节几乎都是我得到的:有一个对象foo,原型的一部分.foo.bar是一种方法foo,并且应该访问其祖父母.而已.没有其他的.这就是我所拥有的所有信息.
编辑4:已解决.根据提供的答案(以及Douglas Crockford的一些二手帮助):
String.prototype.foo = function() {
var that = this;
return {
bar : function() {
console.log(that.valueOf());
}
}
}
//Called:
"Hello, Nurse!".foo().bar();
Run Code Online (Sandbox Code Playgroud) jQuery(); //[]
jQuery("#footer"); //[<div id="footer">...</div>]
Run Code Online (Sandbox Code Playgroud)
我知道你可以这样做:
function kablam(tag) {
var els = document.getElementsByTagName(tag);
els.isKablam = true;
return els;
}
var body = kablam("body"); //[<body class="ask-page">...</body>]
body.isKablam; //true
Run Code Online (Sandbox Code Playgroud)
NodeList返回从中返回的"扩展"版本document.getElementsByTagName.
但是,jQuery却恰恰相反.它将结果合并到自身中(可以在这里和这里看到).此外,这并没有解释当你没有传递给它时,它如何返回一个类似于数组的对象 - 看起来像一个数组:
jQuery(); //[]
Run Code Online (Sandbox Code Playgroud)
当你这样做时,jQuery只是返回自己.(来源)
或者在同一范围内,当您选择body标签时:
jQuery("body"); //[<body class="ask-page">...</body>]
Run Code Online (Sandbox Code Playgroud)
(来源)
或者,来想一想,任何事情:
var o = {}, body = document.getElementsByTagName("body");
jQuery.merge(o, body); //Object, not [...]
Run Code Online (Sandbox Code Playgroud)
返回类似数组的对象非常简单,因为分配数字键是微不足道的,与分配任何其他键没有什么不同.但是jQuery如何使它"看起来像"一个数组呢?
有没有办法检索所有打开的标签并将它们排序到Chrome中的数组?因此,如果Gmail和YouTube处于打开状态,则阵列中将有两个条目名为"gmail.com"和"youtube.com".
给定一个简单的登录系统(注册和登录),这两个选择中的哪一个更安全:
用户信息完全由用户名密码组成.
当然,两种选择都假设最佳情况:考虑MySQL注入,密码为md5/sha1/md5 + sha1 /任何其他加密方式等.
如果你想知道,在第一种情况下,php会将用户凭据添加到htpasswd文件中.(有关示例实现,请参阅此问题.)
想知道一个continue语句在do...while(false)循环中做了什么,我模拟了一个简单的测试用例(伪代码):
count = 0;
do {
output(count);
count++;
if (count < 10)
continue;
}while (false);
output('out of loop');
Run Code Online (Sandbox Code Playgroud)
令我惊讶的是,输出结果是:
0
out of loop
Run Code Online (Sandbox Code Playgroud)
有点困惑,我把循环从a do...while改为a for:
for (count = 0; count == 0; count++) {
output(count);
if (count < 10)
continue;
}
output('out of loop');
Run Code Online (Sandbox Code Playgroud)
虽然在功能上不一样,但目的实际上是相同的:使条件仅满足第一次迭代,并且在下一次迭代中继续(直到达到某个值,纯粹用于停止可能的无限循环.)它们可能不会运行相同的这么多次,但这里的功能并不重要.
输出与以前相同:
0
out of loop
Run Code Online (Sandbox Code Playgroud)
现在,加入一个简单的while循环:
count = 0;
while (count == 0) {
output(count);
count++;
if (count < 10)
continue;
}
output('out of loop');
Run Code Online (Sandbox Code Playgroud)
再次,相同的输出. …
无法理解这个问题
nameTag = "div[class='designer_about'] a"
designsTag = "li[class='span-2']"
pullTags = Array.new(nameTag, designsTag)
Run Code Online (Sandbox Code Playgroud)
错误:
designers_list_mirraw.rb:8:in `initialize': can't convert String into Integer (TypeError)
from designers_list_mirraw.rb:8:in `new'
from designers_list_mirraw.rb:8:in `<main>'
Run Code Online (Sandbox Code Playgroud)
我是红宝石的新手
我想将一个从表单中获得的数字转换为字符串并将其与另一个字符串组合,但我收到了:
windows.location='multiSet?type=multi'Number
Run Code Online (Sandbox Code Playgroud)
相反,我想得到这个:
windows.location='multiSet?type=multiNumber'
Run Code Online (Sandbox Code Playgroud)
请注意,差异是'标记在之前的位置,Number我希望它在之后...
我在其他帖子中看到的是如何将字符串作为数字而不是反之亦然.
var singleMultiContainer = document.getElementById("singleMultiContainer");
var singleMultiValue = singleMultiContainer.value;
var nextButton = document.getElementById("nextButton");
var multipleSetWindow = "window.location='multiSet.html?type=multi'";
var singleSetWindow = "window.location='SampleInfo.html?type=single'";
var containerCuantity = document.getElementById("containerCuantity");
function setContainers(){
singleMultiValue = singleMultiContainer.value;
containerCuantityValue = parseInt(containerCuantity.value);
if (singleMultiValue == "multi"){
//alert("Multi");
document.getElementById("nextButton").setAttribute("onclick", multipleSetWindow+containerCuantityValue);
} else if (singleMultiValue == "single") {
document.getElementById("nextButton").setAttribute("onclick", singleSetWindow);
}
}
singleMultiContainer.onchange = function(){
setContainers();
}
Run Code Online (Sandbox Code Playgroud) javascript ×5
.htaccess ×1
.htpasswd ×1
async.js ×1
asynchronous ×1
c ×1
colors ×1
css ×1
include ×1
jquery ×1
loops ×1
node.js ×1
oop ×1
php ×1
rgb ×1
ruby ×1
ruby-1.9.3 ×1
tabs ×1
web-worker ×1