这是当用户单击生成缩短网址的按钮时调用的函数,我想知道我将在哪里使用针对throbber的AJAX调用。这需要几秒钟,我想同时使用一个悸动者。或者我最终会在单击按钮时调用此函数之外创建一个全新的函数?我还没有看到任何其他看起来像我的代码的例子。真的很新,非常感谢任何帮助,谢谢。
html我想我需要将gif链接到...
<img src="gif/Loader.gif" id="loader"/>
当前的js函数我用来生成短网址功能,虽然需要几秒钟,所以我觉得我需要在某处调用我的gif并在回调成功时摆脱它?
function getShare()
{
var s = document.createElement('script');
var browserUrl = document.location.href;
//alert(browserUrl);
if (browserUrl.indexOf("?") != -1){
browserUrl = browserUrl.split("?");
browserUrl = browserUrl[0];
}
//alert(browserUrl);
var gifUrl = document.getElementById('gif_input').value;
var vidUrl = document.getElementById('vid_input').value;
//alert(gifUrl + "|" + vidUrl);
url = encodeURIComponent(browserUrl + "?gifVid=" + gifUrl + "|" + vidUrl);
//alert(encodeURIComponent("&"));
s.id = 'dynScript';
s.type='text/javascript';
s.src = "http://b1t.co/Site/api/External/MakeUrlWithGet?callback=resultsCallBack&url=" + url;
document.getElementsByTagName('head')[0].appendChild(s);
}
function resultsCallBack(data)
{
//document.getElementById("results").innerHTML = JSON.stringify(data);
//alert(JSON.stringify(data));
var obj = jQuery.parseJSON(JSON.stringify(data));
//alert(obj.shortUrl);
jQuery("#input-url").val(obj.shortUrl);
}
答案 0 :(得分:2)
将图像添加到要显示的位置,但隐藏它:
<img src="gif/Loader.gif" id="loader" style="display:none;"/>
以下是获取网址和访问API
的功能function getShare(url)
{
jQuery('#loader').show(); // show loading...
jQuery.ajax({
dataType: "jsonp",
jsonpCallback:'apiCallback', // this will be send to api as ?callback=apiCallback because this api do not want to work with default jQuery callback function name
url: 'http://b1t.co/Site/api/External/MakeUrlWithGet',
data: {'url':url},
success: function(response){
jQuery('#loader').hide(); // hide loading...
//respponse = {success: true, url: "http://sdfsdfs", shortUrl: "http://b1t.co/qz"}
if(response.success){
console.log(response.url, response.shortUrl);
jQuery("#input-url").val(response.shortUrl);
}
},
error:function(){
jQuery('#loader').hide(); // hide loading...
//todo: network error o_O
}
});
}
顺便说一句,如果你想获得HTML元素的价值
var gifUrl = jQuery('#gif_input').val();
而不是
var gifUrl = document.getElementById('gif_input').value;
答案 1 :(得分:0)
在将script
元素附加到DOM
之前添加throbber,并将其作为resultsCallback
中的第一行删除。
如果您还想要处理错误状态,请查看How to tell if a <script> tag failed to load。