Init()函数调用通过ajax加载内容100%的时间不工作

时间:2015-02-24 17:27:11

标签: javascript ajax

我有一个单页网站,通过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);
                }
            });
        },

0 个答案:

没有答案