问题 - 我有一个 API,在页面加载后会显示随机引用。我的名为“newQuote”的按钮(div)不会生成新的报价,而是显示完全相同的报价,使我的按钮毫无用处。
My code can be found on GitHub here 所以- 我有一个名为 getNewQuote() 的 JavaScript 函数,它在我的页面加载时运行。此函数从 API ( https://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1 ) 获取引用和作者,并将其附加到我的 div 中,并使用类 quoteTitle 和 quoteDisplay。
function getNewQuote() {
$.ajax({
url: 'https://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1',
jsonp: 'jsonp',
cache: 'false',
success: function(data) {
var post = data.shift();
$("#quoteTitle").empty();
$("#quoteDisplay").empty();
$("#quoteTitle").append(post.title);
$("#quoteDisplay").append(post.content);
}
});
}
getNewQuote();
然后,我设置了另一个名为 newQuote 的 div,单击该 div 时会显示新的报价。
$('#newQuote').on('click', function(e) {
e.preventDefault();
getNewQuote();
现在,对我来说,问题似乎出在缓存上。我认为这是缓存问题的原因是,如果我使用 Firefox Focus 应用程序在手机上访问该网站,该应用程序(非常肯定)不会存储任何缓存,该网站将按需要运行,并将更改我的每当我点击我的#newQuote 时都会引用。您可以在托管的“rqg.ronlaniado.me”上亲自尝试一下。
由于我的问题是缓存,所以我确实使用了一些方法和计划来避免这种情况。
cache: 'false',
我在 .ajax 请求中将缓存设置为 false。
<script src="qg_js.js?v=42"></script>
我输入了“?v-42,根据 Google 的说法,它不应该保存缓存。
如果有人可以查看我的代码并帮助我解决问题,那就太好了。另外,这是我第一次在这里发帖,如果我的一切都有点困惑,很抱歉。
最佳答案
错误在这里:
cache: 'false';
正确的用法是:
cache: false;
这些引号导致缓存被保留,这意味着引号没有改变。
关于javascript - 单击按钮时如何显示从特定 API 新随机生成的报价?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45024609/