我有一个单页网站,通过ajax提取内容。当页面首次加载时,它运行一个init()函数,该函数检查url并使用ajax通过带有switch语句的url决定要添加到DOM的内容。问题是主要是在我的iphone上,大约60%的时间没有调用init函数。我对这里可能发生的事情缺乏想法,如果有人能够对这种情况有所了解,我会感激不尽。我能想到的唯一一件事就是加载顺序被纠缠在一起,因此init函数不会调用任何内容或冻结一些内容。该页面不会冻结自己,只是应该加载的内容没有显示。 我的整个脚本都包含在投资组合的对象中。我只是要发布我觉得可能导致问题的功能。如果你需要更多的脚本让我知道。 这是我的一些JavaScript:
init: function(){
var location = document.URL.substr(document.URL.lastIndexOf('/') + 1), //Grabs the last segement of the url and assigns it to a value
page;
portfolio.footer.empty();
switch(location){
case 'contact-page':
$('#main-nav ul li.contact-page').addClass('active');
page = 'contact';
break;
case 'about-page':
$('#main-nav ul li.about-page').addClass('active');
page = 'about';
break;
case 'portfolio-page':
$('#main-nav ul li.portfolio-page').addClass('active');
page = 'portfolio';
break;
default:
$('#main-nav ul li.portfolio-page').addClass('active');
page = 'portfolio';
break;
}
portfolio.loadProjects(page);
portfolio.loadFooter();
},
loadProjects: function(page){
portfolio.footer.empty();
//$('#portfolio').css('height', '100%');
portfolio.ajaxCall('portfolio-wrapper', "partials/"+page+".html");
if(page === 'portfolio'){
portfolio.getProjects();
}
portfolio.loadFooter();
},
ajaxCall: function(context, page){
var loading = function(){
$('.'+context+'').html(
'<div id="loader">'+
'<img id="loader-img" alt="" src="img/loading-dog.gif" width="100" height="100" align="center" />'+
'<p>Loading..</p>'+
'</div>'
);
};
$('.'+context+'').load(page, loading(), function(result) {
if(portfolio.w<=1000){
portfolio.project.fadeOut('fast').empty().append(result).stop().css({opacity: '0', display: 'block'}).animate({opacity: '1'}, 1000);
}else{
portfolio.project.fadeOut('fast').empty().append(result).stop().css({marginLeft: '-1200px', opacity: '0', display: 'block'}).animate({marginLeft: '0', opacity: '1'}, 1000);
}
});
},