我最近开始使用ajax请求。我正在制作一个移动Web应用程序,我在那里请求PHP端服务器脚本的数据。 javascript函数是在用户导航到页面时自动执行。但是在我刷新页面之前,脚本似乎没有运行,这是我的javascript代码。
<script>
$( document ).ready(function(){
Date.prototype.yyyymmdd = function() {
var yyyy = this.getFullYear().toString();
var mm = (this.getMonth()+1).toString();
var dd = this.getDate().toString();
return yyyy + '-' + (mm[1]?mm:"0"+mm[0]) + '-' + (dd[1]?dd:"0"+dd[0]);
};
function requestContent() {
var date = new Date();
$.ajax({
type:'POST',
url:'php/app/adminTimeline.php',
data:{
date: date.yyyymmdd()
},
success: function(data) {
if (data == '') {
alert("No data found!");
} else {
// $("#loading_spinner").css({"display":"none"});
$('#timeline-content').prepend(data);
}
},
error: function(data) {
// $("#loading_spinner").css({"display":"none"});
alert("Something went Wrong!");
}
});
}
window.onload = requestContent();
});
</script>
document.onready
方法和window.onload
方法似乎也不起作用。
Ps:我也在标题中链接了Jquery库。
答案 0 :(得分:0)
代码window.onload=requestContent();
将在窗口加载时执行,不一定在整个文档加载时执行。
但是,在创建日期对象的位置,使用它,在文档完全加载后执行
$(document).ready(function(){
//Code
});
这意味着,一旦窗口加载,就会在文档完全加载之前发出POST请求,因此,在刷新页面之前该日期对象将不存在,此时Javascript可能被缓存。同样another answer (@sagid)指出,window.onload
不能是返回值,但必须是函数。
即。
window.onload=function(){
//Code
};
这意味着,您的解决方案是将window.onload=requestContent();
更改为
$(document).ready(function(){
requestContent();
});
祝你好运!
答案 1 :(得分:0)
$(document).ready()中包含的代码只有在页面文档对象模型(DOM)准备好执行JavaScript代码时才会运行。
https://learn.jquery.com/using-jquery-core/document-ready/
此外,您正在调用 requestContent()
window.onload 必须是函数,而不是返回值。
$(document).ready(function(){
// here you ajax
}