AJAX div 问题内的部分加载页面
AJAX partial loading page inside div problem
我正在开发一个播放音乐的网站。由于在浏览整个网站时音乐需要连续播放,所以我使用 AJAX 将内容加载到 div 中,并将播放器保持在另一个 div 中。每当有人播放任何音乐时,播放器页面就会在播放器 div 中加载,并且内容会显示在内容 div 中。现在,当有人在网站中从一个页面导航到另一个页面时,内容 div 会加载另一页面的新内容,播放器 div 保持不变,除非需要播放新音乐。但有时,并非总是在导航到其他页面期间,播放器变得不可用,但音乐仍在后台播放,之后如果我尝试发出新的播放音乐请求,那么前一个和新音频都会继续播放。但是,当我使用 iFrame 而不是 AJAX 执行相同操作时,就没有问题了。我无法弄清楚为什么会出现这些问题,因为我是 AJAX 的新手。
这是导航到另一个页面的代码
function nextpage(id,type) //this is call when someone clicks a link
{
var URL = "list.php?id="+id+"&t="+type;
$.ajax({
url: URL
}).done(function(data) {
$('#content').html(data);
});
history.pushState(null,null,URL);
}
这是点击任意页面任意音乐时调用播放器的函数
function play(index,type)
{
var URL = "player.php?i="+index+"&t="+type;
$.ajax({
url: URL
}).done(function(data) {
$('#player').html(data);
});
}
这是我所有页面的正文,每个页面都有内容 div 和播放器 div,每个页面的内容都在内容 div[=15 中=]
//Suppose page1.php
<div id="content">
//codes of page1
</div>
<div id="player">
</div>
//Suppose page2.php
<div id="content">
//codes of page2
</div>
<div id="player">
</div>
//Suppose page3.php
<div id="content">
//codes of page3
</div>
<div id="player">
</div>
会不会是每个页面放置内容和播放器div的问题?
谁能帮我解决这个问题,因为我是第一次尝试 AJAX。
据我了解你的情况,你越来越困惑
1st 你需要有一个模板,这应该是默认的,当你点击任何 link,它应该更新内容
<html> <!--sample-->
<body>
<header>
<!--menu links page1, page2 , page3, pae 4 ...-->
</header>
<div id="content"></div>
<div id="player"></div>
</body>
</html>
你的header和播放器div将保持不变,点击link时只有内容div会变成updated/changed。
第二你的 js
// ajax to change content
function nextpage(id,type) //this is call when someone clicks a link
{
// ajax
$.ajax({
url: URL
}).done(function(data) {
$('#content').html(data);
// js code if you have some specific page related, for example
$('#list').select2();
});
}
3 你的内容,页面,你的页面不应该有 id#content div,你的页面将是你想要在内容 div 中显示的内容(音乐列表,艺术家列表等) .将内容 div 视为一个页面,并且您的所有页面都是您想要 display/load 在页面中的内容或数据。
为了更深入的理解,只考虑Whosebug,你的左右各有一栏,中间是内容div,当你打开任何问题时,中间的div随着新内容的变化而变化。
我正在开发一个播放音乐的网站。由于在浏览整个网站时音乐需要连续播放,所以我使用 AJAX 将内容加载到 div 中,并将播放器保持在另一个 div 中。每当有人播放任何音乐时,播放器页面就会在播放器 div 中加载,并且内容会显示在内容 div 中。现在,当有人在网站中从一个页面导航到另一个页面时,内容 div 会加载另一页面的新内容,播放器 div 保持不变,除非需要播放新音乐。但有时,并非总是在导航到其他页面期间,播放器变得不可用,但音乐仍在后台播放,之后如果我尝试发出新的播放音乐请求,那么前一个和新音频都会继续播放。但是,当我使用 iFrame 而不是 AJAX 执行相同操作时,就没有问题了。我无法弄清楚为什么会出现这些问题,因为我是 AJAX 的新手。
这是导航到另一个页面的代码
function nextpage(id,type) //this is call when someone clicks a link
{
var URL = "list.php?id="+id+"&t="+type;
$.ajax({
url: URL
}).done(function(data) {
$('#content').html(data);
});
history.pushState(null,null,URL);
}
这是点击任意页面任意音乐时调用播放器的函数
function play(index,type)
{
var URL = "player.php?i="+index+"&t="+type;
$.ajax({
url: URL
}).done(function(data) {
$('#player').html(data);
});
}
这是我所有页面的正文,每个页面都有内容 div 和播放器 div,每个页面的内容都在内容 div[=15 中=]
//Suppose page1.php
<div id="content">
//codes of page1
</div>
<div id="player">
</div>
//Suppose page2.php
<div id="content">
//codes of page2
</div>
<div id="player">
</div>
//Suppose page3.php
<div id="content">
//codes of page3
</div>
<div id="player">
</div>
会不会是每个页面放置内容和播放器div的问题? 谁能帮我解决这个问题,因为我是第一次尝试 AJAX。
据我了解你的情况,你越来越困惑
1st 你需要有一个模板,这应该是默认的,当你点击任何 link,它应该更新内容
<html> <!--sample-->
<body>
<header>
<!--menu links page1, page2 , page3, pae 4 ...-->
</header>
<div id="content"></div>
<div id="player"></div>
</body>
</html>
你的header和播放器div将保持不变,点击link时只有内容div会变成updated/changed。 第二你的 js
// ajax to change content
function nextpage(id,type) //this is call when someone clicks a link
{
// ajax
$.ajax({
url: URL
}).done(function(data) {
$('#content').html(data);
// js code if you have some specific page related, for example
$('#list').select2();
});
}
3 你的内容,页面,你的页面不应该有 id#content div,你的页面将是你想要在内容 div 中显示的内容(音乐列表,艺术家列表等) .将内容 div 视为一个页面,并且您的所有页面都是您想要 display/load 在页面中的内容或数据。
为了更深入的理解,只考虑Whosebug,你的左右各有一栏,中间是内容div,当你打开任何问题时,中间的div随着新内容的变化而变化。