我正在基于滚动事件进行ajax调用,调用在除IE11之外的所有浏览器中都能正常工作,我找到了原因,因为通过deafault" Smooth Scrolling"为IE11启用了ajax调用经常调用, 所以如何使用javascript或jquery禁用该设置,任何回复都是完整的。
提前致谢。
答案 0 :(得分:0)
OS X,iOS Safari 8+以及更多浏览器上的所有浏览器都具有相同的行为。你不能,绝对不应该改变它。
您可以做的是限制调用函数的速率。 Throttle它。
打开浏览器的控制台,查看此示例。你会看到"滚动"经常被调用但是节流卷轴"最多只能每200毫秒一次。
var handler = function () {
console.log('scroll');
};
var throttledHandler = throttle(function () {
console.log('throttled scroll');
}, 200);
window.addEventListener('scroll', handler);
window.addEventListener('scroll', throttledHandler);
function throttle (callback, limit) {
// source: http://sampsonblog.com/749/simple-throttle-function
var wait = false; // Initially, we're not waiting
return function () { // We return a throttled function
if (!wait) { // If we're not waiting
callback.call(); // Execute users function
wait = true; // Prevent future invocations
setTimeout(function () { // After a period of time
wait = false; // And allow future invocations
}, limit);
}
}
}

<p>scroll me</p>
<p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>---</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>---</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>---</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>---</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>---</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>---</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>---</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>---</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>---</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>---</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>---</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>---</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>---</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>---</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>---</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>---</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>---</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>---</p>
&#13;