【问题标题】:Animation not showing when ajax request in pace.jsajax请求在pace.js中时不显示动画
【发布时间】:2016-09-15 02:18:47
【问题描述】:

在我的网站http://www.eventiame.com/publicar/ 中有一个包含多个字段的表单。 当页面加载时,它会显示速度动画(加载时它会执行一些 ajax 请求,所以没关系)但是当我提交表单时(我也通过 ajax 进行),动画不会出现。 我测试了上传图像(因此需要更长的时间),但仍然没有显示动画。 我还尝试在 akax 请求中将“async”参数更改为 true 或 false,但仍然不行。

以下是无法正常工作的 ajax 调用的具体代码:

$.post('Sample.php,$(this).serialize(),function(data){
    $(target).html(data);
},'html');

【问题讨论】:

  • 错字?不应该是'sample.php'吗?
  • 它不适用于 $.post 或 $.ajax()
  • 这里不接受post请求但接受get请求:)

标签: javascript ajax pace.js


【解决方案1】:

我希望我的回答还不算太晚,但如果那些可能仍然需要它的人,我也遇到了同样的问题,我已经解决了。

默认情况下,Pace 将显示作为正常或 ajax-y 页面加载的一部分开始的任何 ajax 请求,或者持续时间超过 500 毫秒的任何 ajax 请求。您的 ajax 请求没有触发节奏,因为它为时过早。

1、修改Pace.js:

defaultOptions 下找到restartOnRequestAfter,并将其更改为所需时间(以毫秒为单位)值5 ms。

  restartOnRequestAfter: 5,

2、跟踪:

默认情况下,Pace 只会跟踪 GET HTTP 方法,因此请添加您可能需要的所有其他方法,例如 POST 请求。

ajax: {
  trackMethods: ['GET', 'POST', 'PUT', 'DELETE', 'REMOVE'],
  ...
}

来源: http://github.hubspot.com/pace/

【讨论】:

    【解决方案2】:

    你可以试试这个:

    $(document).ajaxStart(function() { 
           Pace.restart(); 
    });
    

    我遇到了同样的问题,我在 Pace 问题部分找到了解决方案。 Source

    【讨论】:

    • 这应该在官方文档中添加。感谢这个简单的解决方案!
    【解决方案3】:

    你缺少一个单引号,应该是:

    $.post('Sample.php', $(this).serialize(), function(data){
        $(target).html(data);
    }, 'html');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-03
      • 2011-06-21
      • 2020-05-24
      • 1970-01-01
      相关资源
      最近更新 更多