调用脚本自定义ajax,如何通过ajax调用从另一个目录同步加载脚本?

小编典典

更新:请参阅下面的评论流,与jQuery无关,这是服务器上的文件权限问题。

原始答案 :

您是否从浏览器中得到任何错误?例如,在Chrome或Safari中,如果打开开发工具并查看“控制台”选项卡,是否显示错误?或者在Firefox中,安装Firebug并检入Firebug的控制台。或者在IE中,使用VS.Net的免费版本…某些事情应该向您抱怨。

您还可以通过提供error函数而不是假设成功来从代码本身获取更多信息:

jQuery.ajax({

async:false,

type:'GET',

url:script,

data:null,

success:callback,

dataType:'script',

error: function(xhr, textStatus, errorThrown) {

// Look at the `textStatus` and/or `errorThrown` properties.

}

});

更新 :您说过您看到textStatus=’错误’和errorThrown=未定义。很奇怪。是否 相同的

脚本工作,如果你移动它,所以它不是一个子路径?我想知道子路径是否是红色鲱鱼,而真正的问题是脚本中的语法错误。

离题 : 真的 需要同步吗?您不能只轮询显示一个符号吗?只是同步ajax请求 确实 浪费了用户体验。在许多浏览器中,不仅您自己的页面而且

所有 页面在请求期间 都被 锁定。

这就是轮询的意思:假设我想从JavaScript异步加载jQuery:

function loadScript(url, symbol, callback) {

var script, expire;

// Already there?

if (window[symbol]) {

setTimeout(function() {

callback('already loaded');

}, 0);

}

// Determine when to give up

expire = new Date().getTime() + 20000; // 20 seconds

// Load the script

script = document.createElement('script');

script.type = 'text/javascript';

script.src = url;

document.body.appendChild(script);

// Start looking for the symbol to appear, yielding as

// briefly as the browser will let us.

setTimeout(lookForSymbol, 0);

// Our symbol-checking function

function lookForSymbol() {

if (window[symbol]) {

// There's the symbol, we're done

callback('success');

}

else if (new Date().getTime() > expire) {

// Timed out, tell the callback

callback('timeout');

}

else {

// Schedule the next check

setTimeout(lookForSymbol, 100);

}

}

}

用法:

// Load jQuery:

loadScript("path/to/jquery.min.js", "jQuery", function(result) {

// Look at 'result'

});

2020-07-26

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值