【发布时间】:2020-01-19 10:07:01
【问题描述】:
我正在开发一个播放音乐的网站。由于在浏览网站时需要连续播放音乐,所以我使用 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 内
//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。
【问题讨论】:
-
如果它是重复的,那么是的,这是一个问题,只有一个 div 用于播放器和内容,因为您将内容更新到同一个 div,它会起作用。
-
是的,你是对的。但是播放器和内容只有一个 div 存在另一个问题。假设我在 page1 中有两个 div,如果有人通过 URL 直接转到 page2,或者如果他们重新加载 page2,那么新的 page2 将在没有播放器和内容的 div 的情况下加载
-
你要明白一件事,你应该有一个有内容和播放器的页面,页面的变化只是虚拟的,或者你可以为用户说,但实际上它只是改变内容页面但不是页面。如果用户通过 url 打开第 2 页然后从 url 获取参数并将其传递给您的内容函数,如果参数为空则加载第 1 页。
-
我总共有 7 页显示了不同类型的数据。假设 page1 显示音乐列表,现在如果用户想查看下一个音乐列表,那么内容正在改变但页面相同,那么我可以按照你说的做。但是现在假设 page2 正在显示艺术家列表,现在当用户移动到 page2 时,内容和页面都会更改。我在更改此页面时遇到问题。
标签: jquery html ajax partial-views