我正在構建一個系統,以顯示我一直在開發的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