我正在构建一个系统,以显示我一直在开发的Web系统上的一些实时活动,问题是我不是很确定我该如何做到这一点,并使其与AJAX实时对接。AJAX与AJAX,MySQL和PHP的朋友活动?
基本上,我有一个收费表,充满了音乐收视率,并且每当有人喜欢或'+1'的歌曲,我想让它显示在这个实时活动的事情。
我会从一些代码开始,但我不太清楚如何做任何AJAX!
有没有人有任何想法我可以通过一个盒子,一个'故事'一次流实时数据?
我正在构建一个系统,以显示我一直在开发的Web系统上的一些实时活动,问题是我不是很确定我该如何做到这一点,并使其与AJAX实时对接。AJAX与AJAX,MySQL和PHP的朋友活动?
基本上,我有一个收费表,充满了音乐收视率,并且每当有人喜欢或'+1'的歌曲,我想让它显示在这个实时活动的事情。
我会从一些代码开始,但我不太清楚如何做任何AJAX!
有没有人有任何想法我可以通过一个盒子,一个'故事'一次流实时数据?
将jQuery添加到您的页面,您可以轻松地使用$.ajax()
来做到这一点。假设你有一个巧妙地命名为ajax.php的PHP脚本,它接受了名为song_id
或其他东西的GET
param。
现在我们假设您有一个+1链接,其HTML id
属性后缀为歌曲ID(在rates表中引用歌曲ID)。
<a href="javascript:void(0);" id="like-34" class="like-link">Like</a>
<span id="current-likes-34">5</span>
让我们来看看Ajax调用快(其被触发,当用户点击类似链接):
$('.like-link').click(function() {
var songId = this.id.split('-')[1];
$.ajax({
url: '/path/to/ajax.php',
data: 'song_id=' + songId,
cache: false,
success: function(response) {
// update likes
$('#current-likes-' + songId).html(response);
}
});
});
现在,让我们来看看这是什么任意ajax.php脚本可能看起来像(简化):
<?php
// detect AJAX request
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH'])
&& strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'
) {
$songId = (isset($_GET['song_id'] && preg_match('/^[0-9]*$/', $_GET['song_id'])
? (int) $_GET['song_id']
: 0;
// assume a mysql db connection has been established
$sql = sprintf(
'UPDATE rates SET likes = likes + 1 WHERE song_id = %d',
$songId
);
mysql_query($sql); // run update query
// now get current amount of likes and print them out to be used by AJAX response
$result = mysql_query(sprintf('SELECT likes FROM rates WHERE song_id = %s', $songId));
if ($result) {
$row = mysql_fetch_row($result);
echo $row[0]; // print likes
}
}
记住是t他全是假设。 PHP脚本根本不完整。我的例子假定了很多东西,但它应该是一个足够的基础,开始。
几乎不可能只用LAMP(PHP)堆栈进行缩放。有一些网络服务可以帮助你实现这个(缩放)。只是仅举几例以随机顺序:
所有有某种自由的计划。老实说,推销员虽然很受欢迎,但价格有点贵。
我认为Beaconpush是这三种产品中最便宜的,但我不相信它支持SSL,当您希望获得安全(秘密)信息时,这非常必要。例如,您可以通过Beaconpush通过电线发送ping命令,但可以使用SSL安全地从您自己的服务器中检索信息。
最后还X-streamly有非常慷慨的免费计划与SSL的支持。如果你需要安全的连接,那么我认为x-streamly是你最好的计划,当你变得非常大的时候,一个非常好的价格计划是19美元,但是一开始我假设免费计划会让你开始。
您也可以使用自托管解决方案,例如像http://socket.io或atmosphere只是仅举几例
捡东西像jQuery(),为前。 [ajax函数](http://api.jquery.com/category/ajax/) –
有几种方法可以做到这一点:ajax与长轮询,html5 websockets,XMPP,闪存套接字。 http://www.ape-project.org/,http://plugins.jquery.com/plugin-tags/long-polling – galchen