我有两个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,但它似乎不是一个非常有效的方法来处理它。什么是“最好的情况”这样做?
答案 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
代码在外部脚本中保留在页面之外,而不是每次都由用户下载。