在视频应用程序中实现like功能的有效方法
Efficient way to implement Likes features in a video application
我有一个基于视频的项目。在这个项目中,我想实现喜欢的功能。也就是说,有一个在每个视频与总喜欢计数的超链接,当用户点击该超链接之后,超链接是隐藏的,只显示喜欢的文本与该视频的总计数。
我写了这段代码在JavaScript与Ajax,但主要问题是,在一个会话中,如果一个用户喜欢5个视频,那么5次db将被击中。有什么有效的方法来实现它吗?
<div id="status${video.id}"><a href="javascript:callLike('${video.id}');"> Like- </a> </div><a id="like1${video.id}" style="color:#ffffff;">${video.likesCount}</a>
function callLike(id)
{
document.getElementById("like"+id).innerHTML='300';
var postData = '?Id='+id;
var url =protocol+'//'+host+'/xxx/getLike'+postData;
// alert("url:"+url);
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
req.onreadystatechange = likesres;
req.open("POST", url, true);
req.send(null);
}
function likesres()
{
if (req.readyState == 4) {
if (req.status == 200) {
response = req.responseText;
document.getElementById("like1"+id).innerHTML=response;
document.getElementById("status"+id).innerHTML='Liked--';
}
}
}
如果你想让这个项目可伸缩,你需要一个更好的项目架构。
首先要做的是在服务器端代码上实现一个内存队列,并为此实现一个处理机制。每当用户点赞一个视频时,这个信息就会被添加到队列中,并且每隔2分钟对队列进行处理,并将其所有内容写入数据库。
通过这种方式,您可以控制访问DB的次数。
但是,如果将处理时间设置得太少,可能会给用户增加一些延迟。
希望这篇文章能帮到你,让你知道需要做什么。
相关文章:
- 添加文字和评论功能更新Div
- 从根本上说,函数调用出了问题.功能在控制台中确实有效
- 从文件目录结构创建JSON数据的有效功能
- Jquery滑动悬停功能显示.stop错误(但仍然有效)
- 有没有更有效的方法来处理重复的功能
- JavaScript功能在web上中断,但在文件中有效
- onclick有两个功能.只有第一个函数有效
- javascript中的作用域是如何工作的?为什么这个功能有效
- 功能活动超时don't有效
- 最有效:不同的功能/一个功能有案例
- 如何使用SilverStripe有效地在表单上的提交按钮中添加额外的自定义JQuery功能
- 非常简单的jQuery剧透功能一半有效
- 你能有效地重置功能输入顺序吗
- 无法找到问题:使用iplib-js进行一般ip配置功能,无效ip返回有效
- 我有两个非常相似的功能,但只有一个有效
- 在视频应用程序中实现like功能的有效方法
- 有没有办法使这个功能在标准浏览器中更有效?
- 为什么这个功能CPS功能在Chrome中有效,而在其他浏览器中无效
- AJAX的成功功能是有效的,但文件是't正在运行
- Javascript 选中/取消选中所有复选框功能仅在有多个复选框时才有效