如何创建一个全局变量来操作AJAX调用之外

时间:2015-05-04 20:17:12

标签: javascript jquery ajax json

我有一个我从JSON文件调用的图像

success: function(data) {   
    console.log(data.items[0].thumbnailImage); 

有人可以告诉我如何将此缩略图转换为可用于在html img标签中显示的全局变量吗?

我只想更多地控制JSON数据,但我不知道如何在ajax调用之外操作它

我意识到我在这里学到了很多,但一个例子真的会有所帮助。

由于

  

以下是我发现的一个例子:

     

(function($){

     

var url ='http://www.jquery4u.com/scripts/jquery4u-sites.json?callback=?';

     

$。AJAX({

     

输入:'GET',    url:url,    async:false,    jsonpCallback:'jsonCallback',    contentType:“application / json”,    dataType:'jsonp',    成功:function(json){         console.dir(json.sites);      },      错误:函数(e){         的console.log(e.message);      }   });

     

})(jQuery的);

     

这个例子的结尾表明:“输出应该是JSON作为一个对象,然后我们可以无限制地将数据用于我们想要的任何东西。”

     

你能给我一些如何使用我想要的数据的例子而不受限制我给出了我在前面的例子中调用的外部JSON文件中提供的thumbnailimage吗?

     

我想要做的就是能够拍摄图像并在html / css中操作/显示图像。

3 个答案:

答案 0 :(得分:1)

你真的不能。 AJAX是异步的 - 一旦你创建XMLHttpRequest,函数执行就会在调用它的上下文之外完成。异步函数需要回调才能完成,在AJAX调用之前和之后执行的其余线性代码不再与它无关。任何答案都说你可以在(异步)成功处理程序中分配一个全局变量并使用它而不需要调用使用 成功处理程序中的变量的函数是错误的。

这个异步回调事件循环是node.js的全部基础。没有绕过它。

答案 1 :(得分:0)

第一种方法是全局定义变量,然后进行AJAX调用,然后将响应分配给变量。

另一种解决方案是直接设置图像。您的回复有哪些格式?也许你需要这样做:

img.src = data.items[0].thumbnailImage;

答案 2 :(得分:-1)

这是一个模糊的问题,因此我的答案相当含糊。

声明你想要在AJAX调用之外存储返回的任何内容,就像一组图像一样。然后在AJAX的成功句柄中,将它添加到该数据存储并处理它然而对您有意义(例如,附加它,更新当前图像等)。

var myImages = [];

function addNewImage(newImage){
 myImages.push(newImage);
 //do whatever you want with new image here

}

$.get('some/url').success(
function(newImage){
 addNewImage(newImage);
})