jQuery Ajax - 每个请求的备用XML源

时间:2010-06-23 10:08:12

标签: php jquery

我有两个XML源来检索数据。我想在每页加载时交替使用它们。因此,当有人访问该页面时,将使用第一个源,下次访问该页面时将使用其他源。这是我用来获取一个数据源的ajax请求:

 $(document).ready(function() {
            $.ajax({
                type: "GET",
                url: "source1.xml", //how do I alternately load two different xml data sources?
                dataType: "xml",
                success: function(xml) {
                    var counter = 0
                    var output = '<li>';
                    $(xml).find('person').each(function(){
                        counter++;
                        var image = $(this).find('image').text();
                        var name = $(this).find('name').text();
                        var title = $(this).find('title').text();
                        var company = $(this).find('company').text();

                        output = output + '<div><a href="#"><img src=img/' + image + '.jpg />' + '<br /><label><span>' + name + '</span><br />' + title + '<br />' + company + '</label></a><br /></div>';
                        if(counter % 3 === 0){
                            output = output + '</li><li>';
                        }
                    });
                    output = output + '</li>';
                    $('#update-target ul').html(output);
                }
            });
        });

有关额外信息,以下是我如何使用PHP交替加载2个Flash文件:

if(isset($_SESSION['rotation'])){
$picker = $_SESSION['rotation'];
}else{
$picker = rand(0,1);
}

if($picker == 0){
echo '<script type="text/javascript">
    var video1 = new SWFObject("somefile1.swf", "p1", "151", "590", "9", "#ffffff");
    video1.addParam("wmode","transparent");
    video1.write("meh");
</script>';

$_SESSION['rotation'] = ++$picker;
} else {
echo '<script type="text/javascript">
    var video1 = new SWFObject("somefile2.swf", "p1", "151", "590", "9", "#ffffff");
    video1.addParam("wmode","transparent");
    video1.write("meh");
</script>';

$_SESSION['rotation'] = --$picker;
}

我意识到我可以直接将jquery文档就绪代码放在那里,我有js调用flash,但它似乎不是一个非常有效的方法来处理它。什么是“最好的情况”这样做?

1 个答案:

答案 0 :(得分:2)

您可以使用变量来缩短它,如下所示:

echo '<script type="text/javascript">var xmlSource = "source1.xml";</script>';

也可以在if caluse中使用它,然后在代码中引用它:

 url: xmlSource,

当然还有其他方法,使用cookie(the cookie plugin),将文本放在document.ready处理程序中等等......我认为这对你来说是最优雅的。

我建议使用PHP端的变量或cookie ...这两个选项都允许document.ready代码在外部脚本中保留在页面之外,而不是每次都由用户下载。