处理jquery ajax响应的最佳实践

时间:2014-01-20 16:35:10

标签: javascript jquery ajax

在过去的几年里,我已经做了很多阅读,试图熟练掌握JavaScript及其框架。似乎大多数文本要么教授ajax的基本知识,将某些东西加载到空元素中,要么他们假设你知道你在做什么并浏览数据处理部分。我随着时间的推移开发了自己的方法,但没有比较它们。我不知道他们有多高效。在构建基于ajax的站点时,我通常使用jquery和history.js,我的代码如下。

function updateContent(state){
    var theUrl = state.data.urlPath;  //the url of what needs ajaed in
    $('#container #content').fadeOut(500, function(){ //fade out old content
       var newContent = {};
       newContent.load(theUrl + ' #content', function(){ //load new content into object
           newContent.hide();  //hide it so it can be faded in
           $('#container').html(newContent);  //replace content in container
           newContent.fadeIn(500);  //fadein content
       });
    });
}

var History = window.History;
if (History.enabled) {
    var State = History.getState();
    History.pushState({urlPath: window.location.href}, $("title").text(), State.urlPath);
} else {
    return false;
}

History.Adapter.bind(window, 'statechange', function() {  
    updateContent(History.getState());
});

$(document).on('click', 'a', function(evt){
    var testSite = /http:\/\/www.example.com(\/)?/ //regex to test if is local link
    var theUrl = $(this).attr('href'); //the url of the clicked link
    if(testSite.test(theUrl)){
        evt.preventDefault();
        History.pushState({urlPath: theUrl}, title, theUrl);
    }
});

这是我的代码的基础知识。我觉得使用后退按钮效率很低。返回时,必须重新加载内容。有没有更有效的方法来做到这一点?

0 个答案:

没有答案