Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
完全Javascript Ajax微调器?_Javascript_Jquery_Ajax_Ascii_Spinner - Fatal编程技术网

完全Javascript 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

我认为Ajax微调器真的很棒,但是图像微调实际上会延迟显示,或者加载得太早,我想也许我可以使用这些老派角色来提供更准确的Ajax活动反馈。
|,/,-,\

假设目标段落名为

如何在该段落中交换这些字符而不占用太多资源,我已经在项目中加载了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)