如果我们做一个简单的测试用例,例如:
document.documentElement.addEventListener('scroll', function() {
console.log(document.documentElement.scrollTop);
});
Run Code Online (Sandbox Code Playgroud)
然后通过单击轨道或使用PageDown/PageUp使用滚动条滚动,然后我们可以看到在滚动动画结束时我们只获得一个事件.
现在理论上我可以通过模拟滚动事件来修复一些行为.使用jQuery和Underscore的示例代码:
$(function () {
var $document = $(document), until = 0;
var throttleScroll = _.throttle(function () {
$document.scroll();
if (+new Date < until) {
setTimeout(throttleScroll, 50);
}
}, 50);
$document.keydown(function (evt) {
if (evt.which === 33 || evt.which === 34) {
until = +new Date + 300;
throttleScroll();
}
});
});
Run Code Online (Sandbox Code Playgroud)
但它仍然无效.我们只获得原始scrollTop目的地和目的地的滚动事件scrollTop,两者之间没有值.
如果然后console.log(document.documentElement.scrollTop)每10分钟一次,那么我们可以看到IE在scrollTop滚动时不会更新.
如果我们想要将某些内容"固定"到滚动位置,这将非常令人沮丧.IE变得生涩.
我没有在任何其他浏览器上观察到此行为,并且没有使用以前的IE版本进行测试.
如果有人找到一种方法来修复IE的行为(也许有一个神奇的CSS来关闭IE 11中的平滑滚动?)那么我非常想听听它!
谢谢 :-)
将Javascript交叉编译或转换为C#并返回的各种工具有哪些?如何在JS中用C#或C#执行JS?这是一个很受欢迎的问题,我将为此提供答案.
所以这是一个有趣的...当我在一个元素上测试setAttribute与普通属性设置的性能时,我发现了一个奇怪的行为,然后我在常规对象上进行了测试......它仍然很奇怪!
因此,如果您有一个对象A = {},并且您将其属性设置为A['abc_def'] = 1,或者A.abc_def = 1它们基本相同.但是如果你做A['abc-def']= 1或A['123-def']= 1那么你就麻烦了.它变得越来越慢.我在这里设置了一个测试:http://jsfiddle.net/naPYL/1/.它们在除chrome之外的所有浏览器上都是相同的.有趣的是,对于"abc_def"属性,chrome实际上比Firefox和IE快得多,正如我所料.但对于"abc-def"来说,它的速度至少要慢两倍.
所以这里基本上(至少从我的测试中)发生的是,当使用属性的"正确"语法时(法律C语法,你可以使用点属性) - 它很快,但是当你使用需要使用括号的语法时(a [...]那你就麻烦了.
我试图想象在两种模式之间以这种方式区分哪种实现细节,而不是.因为我想到它,如果你支持那些非标准名称,你可能正在将所有名称翻译成相同的机制,其余的只是编译成该机制的语法.所以.编译后,语法和[]应该都是一样的.但显然有一些事情在这里反过来......
如果不看V8的源代码,有人会想到一个非常令人满意的答案吗?(把它想象成一个练习:-))
感谢JDMperf的NDM示例!
编辑:
为了澄清,我当然也希望从实际代码(我已经找到)中得到具体答案,或者更确切地说 - 具体实现背后的原因.这就是我要求你把它看作"练习"的原因之一,看看技术实现的背后并试图找到原因.
但我也希望看到其他人的思想如何在这些案例中发挥作用.对于你们中的一些人来说,这听起来可能"模糊" - 但是不时地尝试和其他人一样思考,或者采取他们的观点是非常有用的.它增强了你自己的思维方式.
我正在寻找一个像android.intent.category.HOME这样的intent-filter,它允许应用程序在按下HOME按钮时启动,只需长按.或者任何其他方法来实现相同的结果......我读到过去有可能但出于安全原因而被禁用......是真的吗?
谢谢!
这是一件烦人的事情。我有一个基于 Gradle 的简单项目结构,与我拥有的其他项目非常相似。该项目有以下进口:
dependencies {
compile 'com.android.support:support-v4:13.0.+'
compile files('libs/jackson-annotations-2.1.0.jar')
compile files('libs/jackson-core-2.1.0.jar')
compile files('libs/jackson-databind-2.1.0.jar')
compile files('libs/zip4j_1.3.1.jar')
compile files('libs/httpclient-4.1.3.jar')
compile files('libs/httpclient-cache-4.1.3.jar')
compile files('libs/httpcore-4.1.4.jar')
compile files('libs/httpmime-4.1.3.jar')
compile project(":grid_lib")
}
Run Code Online (Sandbox Code Playgroud)
效果很好。
唯一的问题是 Android Studio 无法识别这些类,因此它们都是红色的并且没有英特尔。 很烦人!
我已经用头撞墙太久了,所以我现在在这里尝试。你们说什么?有任何想法吗?
谢谢 :-)
编辑
我已经回答了我自己的问题,对于那些发现同样问题的人。
我找到了这个代码,我不明白.我找不到参考资料NTAPI.对我来说,它定义了一个被调用的函数,TestForWr但NTAPI令人困惑.
VOID NTAPI TestForWr(PVOID Ad, ULONG Le, ULONG Al);
Run Code Online (Sandbox Code Playgroud)