如何悬挂ajax呼叫



当脚本花费太长的加载时,我正在尝试测试网站的行为。我知道如何完全阻止请求,以便通过在主机文件中添加某些内容来返回404,但不确定如何强制请求不完成。

示例,

127.0.0.1 translate.google.com # this blocks google translate from loading (404)

相反,我想做translate.google.com x秒不响应

我正在使用requirej加载脚本,我注意到超时行为与404的行为不同。

我添加了一个模块,以期需要进行Google Translate,并且当我通过主机文件阻止它时,该站点的行为正确。当脚本限制脚本时,网站未能加载。

// http://stackoverflow.com/questions/14164610/requirejs-optional-dependency
define("optional", [], {
    load: function (moduleName, parentRequire, onload, config) {
        var onLoadSuccess = function (moduleInstance) {
            // Module successfully loaded, call the onload callback so that
            // requirejs can work its internal magic.
            onload(moduleInstance);
        }
        var onLoadFailure = function (err) {
            // optional module failed to load.
            var failedId = err.requireModules && err.requireModules[0];
            console.warn("Could not load optional module: " + failedId);
            // Undefine the module to cleanup internal stuff in requireJS
            requirejs.undef(failedId);
            // Now define the module instance as a simple empty object
            // (NOTE: you can return any other value you want here)
            define(failedId, [], function () { return {}; });
            // Now require the module make sure that requireJS thinks 
            // that is it loaded. Since we've just defined it, requirejs 
            // will not attempt to download any more script files and
            // will just call the onLoadSuccess handler immediately
            parentRequire([failedId], onLoadSuccess);
        }
        parentRequire([moduleName], onLoadSuccess, onLoadFailure);
    }
});

您需要通过控制网站进行测试。最简单的解决方案是使用您自己的Localhost使用一个等待几秒钟的脚本。

一个简短的PHP示例等待30秒看起来像:

<?php
  sleep(30);
  echo 'DONE';

只需增加秒的睡眠时间,直到您的申请有超时为止。

这是node.js

中的另一个解决方案

更新:

下一步是重定向您要超时在主机文件中的URL(如您的问题中(:

127.0.0.1 translate.google.com

运行本地apache服务器(127.0.0.1是Localhost的标准配置(,然后将以下.htaccess文件放入Apache root(通常为" HTDOCS"(:

DirectoryIndex index.php
RewriteEngine on
RewriteRule ^(.*)$ index.php [QSA,L]

然后将php示例从上面的php示例放在 index.php 的文件中(通常是" htdocs"(。

然后,您的本地服务器应响应呼叫,您可以调整响应时间,直到您超时为止。

相关内容

  • 没有找到相关文章

最新更新