使用来自AJAX请求外部数据的成功函数

时间:2013-11-06 03:08:29

标签: javascript ajax django jquery

我正在使用漂亮的汤来抓取网页以获取一些信息。我有一个用户在到达我网站的主页时键入他们的邮政编码,并向Django发送一个AJAX请求,以根据用户输入获取一些数据。 javascript中的代码如下所示:

$(document).ready(function(){
    $('#search').on('click', function(){
        zip = $('#zip').val();
        data = {
            zip: zip
        }
        $.post('/search', data, function(response){
            places = response
            // some Mustache code to render different elements
        });
    });

    $('body').on('click', '.show-place', function(){
        place_id = Number($(this).attr('id'));
        place = places[place_id];
}

这是最好的方法吗?当我在成功函数中设置places = response时,我已经读到使用全局变量有点不受欢迎。我不知道另一种使用响应数据的方法。有一个更好的方法吗?感谢。

1 个答案:

答案 0 :(得分:0)

不,这不是在函数之间传递数据的好方法。 Globals永远不会。

您应该将逻辑封装在某个对象/函数中并将值传递给它。 在此示例中,您应该:

     // I would suggest wrapping the $.post
    $.post('/search', data, function(response){
        renderElements(response);
    });

更好的方法(但更难)是构建一个Renderer元素并执行以下操作:

       var renderer = new Renderer(response);
       renderer.render();