Javascript 单击按钮时,如何显示从特定API随机生成的新报价?
问题-我有一个API,在页面加载后显示随机引用。名为“newQuote”的我的按钮(div)不会生成新的报价,相反,它会显示完全相同的报价,使我的按钮变得无用。 所以- 我有一个javascript函数,名为getNewQuote(),在页面加载时运行。此函数从API()中获取一个引号和作者,并使用类quoteTitle和quoteDisplay将其附加到我的div中Javascript 单击按钮时,如何显示从特定API随机生成的新报价?,javascript,jquery,html,Javascript,Jquery,Html,问题-我有一个API,在页面加载后显示随机引用。名为“newQuote”的我的按钮(div)不会生成新的报价,相反,它会显示完全相同的报价,使我的按钮变得无用。 所以- 我有一个javascript函数,名为getNewQuote(),在页面加载时运行。此函数从API()中获取一个引号和作者,并使用类quoteTitle和quoteDisplay将其附加到我的div中 function getNewQuote() { $.ajax({ url: 'https://quotesond
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将显示一个新的quote
$('#newQuote').on('click', function(e) {
e.preventDefault();
getNewQuote();
现在,对我来说,问题似乎是缓存。我认为这是一个缓存问题的原因是,如果我使用Firefox Focus应用程序访问我手机上的站点,该应用程序(相当肯定)不存储任何缓存,该站点将按需要运行,并且每当我单击我的#newQuote时,就会更改我的报价。你可以在“rqg.ronlaniado.me”亲自体验一下,它就在这里
因为我的问题是缓存,所以我确实使用了一些方法和计划来避免这种情况
cache: 'false',
我在.ajax请求中将cache-ing设置为false
<script src="qg_js.js?v=42"></script>
我放了“?v-42,根据谷歌的说法,它不应该保存缓存
如果有人可以查看我的代码并帮助我解决我的问题,那就太好了。此外,这是我第一次在这里发布,如果我对所有内容都有点混乱,那么很抱歉。错误在这里:
cache: 'false';
正确的用法是:
cache: false;
这些引号导致缓存被保留,这意味着引号没有更改。错误在这里:
cache: 'false';
正确的用法是:
cache: false;
这些引号导致缓存被保留,这意味着引号没有更改。删除
e.preventDefault()
在URL末尾添加?v-42
只表示它是版本42。一旦被访问,它将开始缓存。您需要使用不同的版本(如43),或使用当前时间作为版本号,版本号将始终不同:)您的代码实际上正在工作…@ChavaG每次刷新页面时,我都可以获得一个新的报价,但问题是单击“new quote”(新报价)“只返回页面上已经存在的相同报价,而不是新生成的报价。实际上,每次单击此处的“新报价”按钮时,都会显示一个新报价-删除e.preventDefault()
在URL末尾添加?v-42
仅表示它是版本42。一旦被访问,它将开始缓存。您可能需要使用不同的版本(如43),或者使用当前时间作为版本号,这将始终是不同的:)您的代码实际上正在工作…@ChavaG每次刷新页面时,我都可以获得一个新的报价,但问题是单击“new quote”只会返回我页面上已存在的相同报价,而不是新生成的报价。实际上,每次单击此处的“new quote”(新报价)按钮时,都会显示一个新报价-