我刚刚发现了chromestatus.com,在我失去了几个小时之后,发现了这个功能条目:
地图:地图对象是简单的键/值映射.
那让我困惑.常规的JavaScript对象是字典,所以Map与字典有什么不同?从概念上讲,它们是相同的(根据 地图和字典之间的区别是什么?)
文档chromestatus引用也没有帮助:
映射对象是键/值对的集合,其中键和值都可以是任意ECMAScript语言值.不同的键值只能出现在Map集合中的一个键/值对中.使用在创建Map时选择的比较算法区分不同的键值.
Map对象可以按插入顺序迭代其元素.必须使用散列表或其他机制来实现Map对象,这些机制平均提供对集合中元素数量的次线性访问时间.此Map对象规范中使用的数据结构仅用于描述Map对象所需的可观察语义.它不是一个可行的实施模型.
...对我来说仍然听起来像是一个对象,显然我错过了一些东西.
为什么JavaScript获得(受到良好支持的)Map对象?它有什么作用?
在回答另一个问题时,我对此感到好奇.我很清楚
if( __builtin_expect( !!a, 0 ) ) {
// not likely
} else {
// quite likely
}
Run Code Online (Sandbox Code Playgroud)
通过做一些暗示处理器/更改汇编代码顺序/某种魔术的东西,将使"非常可能"的分支更快(通常).(如果有人能澄清那个也很棒的魔法).
但这是否适用于a)内联ifs,b)变量和c)除0和1以外的值?即会
__builtin_expect( !!a, 0 ) ? /* unlikely */ : /* likely */;
Run Code Online (Sandbox Code Playgroud)
要么
int x = __builtin_expect( t / 10, 7 );
if( x == 7 ) {
// likely
} else {
// unlikely
}
Run Code Online (Sandbox Code Playgroud)
要么
if( __builtin_expect( a, 3 ) ) {
// likely
// uh-oh, what happens if a is 2?
} else {
// unlikely
} …Run Code Online (Sandbox Code Playgroud) 所以我看到有一些新的(ish)函数被提出; toDataURLHD,toBlobHD,getImageDataHD等."在天然画布位图分辨率返回[数据]",其(http://developers.whatwg.org/the-canvas-element.html).
但我不懂术语.这是否意味着有些情况下非HD版本会在返回之前重新调整图像数据?(即在高分辨率显示器上可以toDataURL产生质量低于实际画布的图像),或者这只是指图像中每英寸像素数的元数据?
我一直在尝试尽可能多的缩放方法(小提琴:http://jsfiddle.net/SktKQ/),它似乎总是像素为像素,但这几乎没有定论,我不知道可以访问任何高分辨率显示器进行测试.
我正在寻找的是:我可以依靠toDataURL&Co.生产我的画布的像素对像素副本,其宽度和高度完全等于元素上设置的属性吗?(如果是这样,HD版本有什么意义?)
我有一个简单的结构:一个包含一批数据的数据jar文件,以及一个使用该数据运行服务的服务jar文件.为了使数据易于替换,我将它们分开,service.jar的classpath包含data.jar所在的目录.
在service.jar中,我使用getResource来加载数据文件.如果数据文件直接位于文件夹中,但是当它们位于data.jar内时失败,则此方法有效;
这失败了:
all
+ globalclasspath
| + data.jar
| + mine.properties
+ daemons
+ service.jar
jsvc -cp globalclasspath:daemons/service.jar (...)
MyClass.class.getClassLoader( ).getResource( "mine.properties" ); // <-- null
Run Code Online (Sandbox Code Playgroud)
但这有效:
all
+ globalclasspath
| + mine.properties
+ daemons
+ service.jar
jsvc -cp globalclasspath:daemons/service.jar (...)
MyClass.class.getClassLoader( ).getResource( "mine.properties" ); // <-- not null
Run Code Online (Sandbox Code Playgroud)
我不想更改类路径(除非我可以将它改为通用的,不依赖于数据jar文件的名称),但是我可以更改getResource字符串(我试过/数据) /mine.properties和/data.jar/mine.properties无济于事.我可以进行更改,以便可以从jar中加载资源吗?
我的应用程序中有一个模态对话框,用于getUserMedia显示用户摄像头的视频.这会导致出现"拒绝/允许"栏.假设用户在单击"拒绝"或"允许"之前关闭对话框.即使使用它的元素已经消失,该条仍然存在.
有没有办法通知浏览器它可以隐藏权限请求,即使用户从未与它进行过交互?
我创建一个RegExp对象(在JavaScript中)来测试数字的存在:
var test = new RegExp( '[0-9]', 'g' );
Run Code Online (Sandbox Code Playgroud)
我这样用它
console.log( test.test( '0' ) ); // true
console.log( test.test( '1' ) ); // false - why?
Run Code Online (Sandbox Code Playgroud)
这个输出更令人困惑:
console.log( test.test( '1' ) ); // true
console.log( test.test( '0' ) ); // false - why?
console.log( test.test( '1' ) ); // true
console.log( test.test( '2' ) ); // false - why?
console.log( test.test( '2' ) ); // true - correct, but why is this one true?
Run Code Online (Sandbox Code Playgroud)
如果我删除g限定符,它的行为与预期一致.
这是一个我认为是错误的错误,还是规范的一些特殊部分?是否g应该以这种方式使用限定符?(我正在为多个任务重复使用相同的表达式,因此根本没有限定符)
有没有办法按唯一(主)键进行分组,实质上给出了一个隐含的保证,即该表中的其他列将被明确定义?
SELECT myPrimaryKey, otherThing
FROM myTable
GROUP BY myPrimaryKey
Run Code Online (Sandbox Code Playgroud)
我知道我可以将其他列添加到语句(GROUP BY myPrimaryKey,otherThing)中,但我试图避免这种情况.如果您对此感到好奇,请继续阅读:
我有一个基本上这样做的声明:
SELECT nodes.node_id, nodes.node_label, COUNT(1)
FROM {a couple of joined tables}
INNER JOIN nodes USING (node_id)
GROUP BY nodes.node_id, nodes.node_label
Run Code Online (Sandbox Code Playgroud)
哪个工作正常,但在MySQL中有点慢.如果我nodes.node_label从中删除GROUP BY,它运行速度提高了大约10倍(根据EXPLAIN,这是因为之前的一个连接开始使用索引,而以前它没有).
我们在迁移到Postgres的过程中,因此所有新语句应该是兼容两者的MySQL 和 Postgres的可能时.现在在Postgres中,原始语句运行得很快,但是新语句(减少的组)将不会运行(因为Postgres更严格).在这种情况下,这是一个错误的错误,因为该语句实际上是明确定义的.
是否有一种语法我可以使用哪种语言可以在两个平台上运行相同的语句,同时让MySQL只使用组中的一列来提高速度?
为什么删除 PostgreSQL 中的表需要ACCESS EXCLUSIVE锁定任何引用的表?如何将其减少到ACCESS SHARED锁定或根本不锁定?即有没有办法在不锁定引用表的情况下删除关系?
我在文档中找不到任何关于需要哪些锁的提及,但是除非我在并发操作期间删除多个表时以正确的顺序明确获取锁,否则我可以看到死锁在日志中等待 AccessExclusiveLock,并获取此限制当表被删除时,对常用表的锁定会导致其他进程的暂时延迟。
澄清,
CREATE TABLE base (
id SERIAL,
PRIMARY KEY (id)
);
CREATE TABLE main (
id SERIAL,
base_id INT,
PRIMARY KEY (id),
CONSTRAINT fk_main_base (base_id)
REFERENCES base (id)
ON DELETE CASCADE ON UPDATE CASCADE
);
DROP TABLE main; -- why does this need to lock base?
Run Code Online (Sandbox Code Playgroud) Chrome 59已取消对https:// user:password@example.com网址的支持.
我有一个使用此功能的测试现已破坏,因此我尝试将其替换为等待身份验证弹出窗口并填写详细信息的版本.但以下内容在Chrome上不起作用(它没有将auth弹出窗口视为警报):
alert().authenticateUsing(new UserAndPassword("test", "test"));
Run Code Online (Sandbox Code Playgroud)
仅限硒的版本具有相同的问题:
WebDriverWait wait = new WebDriverWait(getDriver(), 10);
Alert alert = wait.until(ExpectedConditions.alertIsPresent());
alert.authenticateUsing(new UserAndPassword("test", "test"));
Run Code Online (Sandbox Code Playgroud)
(基于此处给出的答案:如何使用Java处理Selenium WebDriver的身份验证弹出窗口)
我可以看到在FireFox中处理此问题的几种解决方法,但Chrome没有.有没有替代方法?
我有这个JavaScript代码:
function spu_createCookie(name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else
var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
Run Code Online (Sandbox Code Playgroud)
如何让cookie在2小时后过期?
javascript ×5
java ×2
postgresql ×2
c ×1
c++ ×1
classpath ×1
cookies ×1
dictionary ×1
drop-table ×1
ecmascript-6 ×1
fluentlenium ×1
gcc ×1
getusermedia ×1
group-by ×1
html5 ×1
html5-canvas ×1
jsvc ×1
mysql ×1
optimization ×1
regex ×1
selenium ×1
sql ×1