完全Javascript Ajax微调器?
我认为Ajax微调器真的很棒,但是图像微调实际上会延迟显示,或者加载得太早,我想也许我可以使用这些老派角色来提供更准确的Ajax活动反馈。完全Javascript Ajax微调器?,javascript,jquery,ajax,ascii,spinner,Javascript,Jquery,Ajax,Ascii,Spinner,我认为Ajax微调器真的很棒,但是图像微调实际上会延迟显示,或者加载得太早,我想也许我可以使用这些老派角色来提供更准确的Ajax活动反馈。 |,/,-,\ 假设目标段落名为 如何在该段落中交换这些字符而不占用太多资源,我已经在项目中加载了JQuery 非常感谢各位 可能类似于: function change(areDoneYet) { var realFun = (function(doneYet) { var chars = "|/-\\"; var
|,/,-,\ 假设目标段落名为
如何在该段落中交换这些字符而不占用太多资源,我已经在项目中加载了JQuery
非常感谢各位 可能类似于:
function change(areDoneYet) {
var realFun = (function(doneYet) {
var chars = "|/-\\";
var el = $('#target'); // I think that's the JQuery way
var current = el.innerHTML;
var changeTo = "";
if (current == "") changeTo = chars.charAt(0);
else
changeTo = chars.charAt(chars.indexOf(current) % chars.length);
el.innerHTML = changeTo;
if (!areDoneYet())
setTimeout(realFun, 100, doneYet);
});
realFun(areDoneYet);
if (!areDoneYet())
setTimeout(realFun, 100, areDoneYet);
}
嗯。这有点不雅。它接受一个返回是否应该停止的回调。Mohammad-将图像加载到“隐藏”div中可以解决加载图像的延迟问题。然而,我想你的问题更多的是关于图像的替代方案,而不是解决延迟本身。这允许你同时拥有多个事件加载指示器。只需将它们存储在变量中,并在不再需要它们时调用
stop()
[]
从本页开始:
- 没有图像,没有外部CSS
- 无依赖项(支持jQuery,但不是必需的)
- 高度可配置
- 分辨率独立
- 在旧IEs中使用VML作为后备
- 使用@keyframe动画,返回到setTimeout()
- 适用于所有主要浏览器,包括IE6
- 麻省理工学院执照
真的真的,哈哈,昨晚我真的想到了隐藏的解决方案,但今天早上我忘了。我仍然在考虑这个选项,因为它可能允许微调器速度和结果之间的推论。我知道你已经有了答案,但我想补充一点,我写了一个插件,可以为子弹设置动画:
function loader(el, delay) {
if (typeof el === "string")
el = document.getElementById(el);
if (!el)
return;
delay = delay || 100;
var chars = "|/-\\".split("");
var i = 0;
var timer = setInterval(function(){
el.innerHTML = chars[ i++ % chars.length ];
}, delay);
// public method to stop the animation
this.stop = function() {
clearInterval(timer);
}
}
// make a new loader and start animation
var ld1 = new loader("loader"); // or loader($("#loader")[0]);
// content is loaded stop animation
ld1.stop();
var str = '|/—\\';
var target = $('#target');
var x = 0;
setInterval(function(){
target.text(str.charAt((x++)%str.length))
},5000)