ajax音乐,AJAX在线音乐网站(3)Part one 功能实现

今天打算把网站功能的具体实现给总结回顾一下,如果你想了解整个小项目,建议你先看看前面2篇博客。

7.网站主要模块实现

a.在线音乐前台

由于在线音乐网站要提供用户在线音乐的相关服务,当用户打开网站时,引入眼帘的是首页,所以首页的对于整个网站来说是非常重要的一个页面,首页排版和设计的美观与否将直接影响到游客的浏览和用户的注册。首页不仅要实现各种功能的展示,而且还要着眼于系统整体风格,能让首页做到功能完善,页面简洁美观。

网站前台有歌曲排行榜展示、专辑排行榜展示、歌手排行榜展示、用户登录和注册、系统歌曲搜索、试听排行榜歌曲和下载排行榜歌曲、我的收藏等功能。程序运行结果如图5.1所示。

7824f7a6688ab459cca9ee85df98ccd5.png 

图5.1 前台主界面图

实现过程:

1)在进入音乐排行榜、专辑排行榜、歌手排行榜、我的收藏等功能时,实现AJAX技术效果,不刷新整个页面,只是异步刷新相应的排行表格数据,这样在增强用户体验的同时,也最大化的保证了已经登录的用户信息的安全,关键代码如下:

$(function() {

l(1);

})functionl(m) {

$.ajax({

type:"post",

url:"ajaxmlist.aspx",

data:"id=" +m,

success:function(msg) {if (m == "1") {

$("#ltitle").html("音乐排行榜")

}if (m == "2") {

$("#ltitle").html("专辑排行榜")

}if (m == "3") {

$("#ltitle").html("歌手排行榜")

}if (m == "4") {

$("#ltitle").html("我的收藏")

}//将数据放入LIST中

$("#mlist").html(msg);

}

})

}

2)首页的登录区,可以在用户提交登录信息后,将信息与用户数据表中对比,并判断是用户还是管理员,并做出不同的页面跳转动作,关键代码如下:

Session["type"] = "";

Session["userId"] = "";string sql = "select password,[type] from [user] where [email protected]";

SqlCommand cmd= newSqlCommand(sql, conn);

cmd.Parameters.Add("@userId",SqlDbType.NChar).Value =userId.Text.Trim();

cmd.Connection.Open();

SqlDataReader dr=cmd.ExecuteReader();string passwd = "";if(dr.Read())

{

passwd= dr.GetString(0);if(passwd.Trim().ToString() ==Password.Text.Trim().ToString())

{

Session["userId"] =userId.Text.ToString();if (dr.GetString(1).Trim().ToString() == "admin")

Response.Redirect("~/musicChange.aspx?userId=" + userId.Text.ToString() + "");elseResponse.Redirect("Default.aspx");

}

}else{

Session["userId"] =null;

Session.Clear();

FailureText.Text= "账号或密码错误,登录失败!";

}

b.歌曲的试听和下载

当用户进入在线音乐网站时,可以试听歌曲排行榜的任何一首歌曲,如下图5.2,同时也可以把它下载到本地电脑上面如图5.3。

ed6b4209aa47a8db3ee72242232bc202.png

图5.2 歌曲试听界面

c5c9f95cf506cf59d27ad3fe8c020488.png

图5.3 歌曲下载界面

1)试听功能的实现过程

在音乐排行榜数据表格中,定义如下代码:

"

用户点击歌曲名称是进入歌曲试听界面,程序将通过歌曲ID,获取歌曲文件路径,并传递给播放器,关键代码如下:

string path = new DirectoryInfo(Server.MapPath("")).FullName.ToString() + @"\file\" +updateMusic();string str = path.Replace(‘\\‘, ‘/‘);

fileUrl = str;

update_album();

update_singer();

SqlConnection conn= new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString());string sql = "select * from [music]";

SqlCommand cmd= newSqlCommand(sql, conn);

cmd.Connection.Open();

SqlDataReader dr=cmd.ExecuteReader();while(dr.Read())

{

ListItem listItem= new ListItem { Value = dr.GetString(0), Text = dr.GetString(1) };

Select1.Items.Add(listItem);

}

Select1.Items[0].Selected = true;

dr.Close();

cmd.Connection.Close();

2)下载功能的实现过程

在音乐排行榜数据表格中,定义如下代码:

下载

当用户点击下载按钮后,程序将通过歌曲ID,获取到歌曲的文件路径,并通过Response对象将文件写出,关键代码如下:

string m_name =downMusic();string path = new DirectoryInfo(Server.MapPath("")).FullName.ToString() + @"\file\" +m_name;string str = path.Replace(‘\\‘, ‘/‘);

update_album();

update_singer();

System.IO.FileInfo file= new System.IO.FileInfo(str);if(file.Exists)

{

Response.Clear();

Response.AddHeader("Content-Disposition", "attachment; filename=" +HttpUtility.UrlEncode(Encoding.UTF8.GetBytes(m_name)));

Response.AddHeader("Content-Length", file.Length.ToString());

Response.ContentType= "application/octet-stream";

Response.Filter.Close();

Response.WriteFile(file.FullName);

Response.End();

}else{

Response.Write("This file does not exist.");

}

Response.Redirect("Default.aspx");

c. 歌曲模糊搜索功能

当用户只记得歌曲名、专辑、歌手的一部分的时候,在线音乐网站采用了模糊搜索,同样可以搜到你想听的歌曲,如图5.4所示。

396b2dd30269e9c2daab63fcbe9e53f6.png

图5.4 搜索

实现过程:

用户在搜索框中输出文本时,当点击搜索按钮时,会触发search_btn_Click事件,同时会将文本和搜索类型传入搜索页面的dataBind方法中,通过使用查询数据库含有like ‘%‘的语句,可以实现对歌曲的模糊搜索,关键代码如下:

if (type.Equals("music"))

{

cmd.CommandText= "SELECT * FROM [music] WHERE(musicName like [email protected]+‘%‘) ORDER BY count DESC";

cmd.Parameters.Add("@musicName", SqlDbType.NChar).Value =name;

}else if(type.Equals("singer"))

{

cmd.CommandText= "SELECT * FROM [music] WHERE(singer like [email protected]+‘%‘) ORDER BY count DESC";

cmd.Parameters.Add("@singer", SqlDbType.NChar).Value =name;

}else{

cmd.CommandText= "SELECT * FROM [music] WHERE(album like [email protected]+‘%‘) ORDER BY count DESC";

cmd.Parameters.Add("@album", SqlDbType.NChar).Value =name;

}

SqlDataAdapter da= newSqlDataAdapter();

da.SelectCommand=cmd;

SqlCommandBuilder sqlcb= newSqlCommandBuilder(da);

DataSet ds= newDataSet();

da.Fill(ds,"music");if (ds.Tables["music"].Rows.Count > 0)

{

dg.DataSource=ds;

dg.DataBind();

}else{

dg.Visible= false;

msg.Text="没有找到相关文件!";

}

}

原文:http://www.cnblogs.com/java-class/p/4075484.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值