【问题标题】:getJSON always returns the same datagetJSON 总是返回相同的数据
【发布时间】:2016-03-08 07:46:52
【问题描述】:

有没有办法从getJSON() 刷新数据?我想从 API 中检索一个随机图像 URL(并设置 css 背景图像)。问题是图像 URL 保持不变,而每次调用该函数时它都应该刷新。

function changeImage() {
    $.getJSON("https://api.unsplash.com/photos/random?client_id=336b527b2e18d045045820b78062b95c825376311326b2a08f9b93eef7efc07b", function(result) {
        randomPhoto = result.urls.full;
        console.log(randomPhoto);
    });
};

changeImage();       

jsFiddle 在这里:https://jsfiddle.net/h2jscr46/

【问题讨论】:

  • 直觉上我会尝试附加随机数参数,甚至更好的时间戳,如api.unsplash.com/photos/…随机数>
  • 每次我在你的 JS 小提琴中运行示例时都会得到不同的结果......?也就是说,尝试在 URL 中添加时间戳或使用 $.ajax 并设置 cache: false
  • @RoryMcCrossan 这可能是因为在运行小提琴 iframe 内容被重新加载
  • @entio nope,即使在不刷新的情况下单击按钮,每次都是不同的图像 URL:jsfiddle.net/h2jscr46/2
  • 如果你声明一个静态 url 那么它会如何改变???

标签: jquery json api getjson


【解决方案1】:

直观地说,我会尝试附加随机数参数,甚至更好的时间戳,例如 试试这个:

$.getJSON("https://api.unsplash.com/photos/random?client_id=3...7b&ts=" + (new Date().getTime())

https://jsfiddle.net/entio/L8rphtno/

【讨论】:

    【解决方案2】:

    感谢大家的投入!我最终使用了这个:

    这是缓存。

    var randomPhoto = {};
    
        function changeImage() {
    
        $.ajax({
      url: "https://api.unsplash.com/photos/random?client_id=336b527b2e18d045045820b78062b95c825376311326b2a08f9b93eef7efc07b",
      cache: false,
      success: function(result){
        randomPhoto = result.urls.full;
         console.log(randomPhoto);
      }
    
    });
    
    };
    
        changeImage();
    

    这是 JSfiddle https://jsfiddle.net/9xft1orw/1/

    顺便说一下,API 仍处于开发模式时有速率限制

    【讨论】:

      【解决方案3】:

      尝试使用 AJAX 刷新您的数据。

      设置缓存为假的示例。

      $(document).ready(function() {
        $.ajaxSetup({ cache: false });
      });
      

      【讨论】:

      • getJSON 是 jquery 对 ajax 方法的简写
      • 是否可以使用 getJSON 禁用缓存,或者根本不使用,所以使用 $.ajax
      • 看我的帖子回答,希望对你有帮助
      猜你喜欢
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 2015-01-20
      • 1970-01-01
      • 2011-10-03
      • 1970-01-01
      • 2019-10-04
      • 1970-01-01
      相关资源
      最近更新 更多