لديك حساب بالفعل؟ دخول
دخول  سجل الأن 
إستدعاء البيانات المضافة من قاعدة البيانات بدون تحديث
كنت اتسائل ماهى الطريقة التى يمكن بها استدعاء
اخر البيانات المضافة الى قاعدة البيانات
مثل شات الفيسبوك
عندما ترسل رسال من صفحة اخرى تقوم الصفحة المفتوحة بإستيراد الرسال بدون تحديث
ارجو ان تكون الفكرة وصلت
تاريخ البداية: 9 / مارس / 2012 الساعة 14:1 اخر نشاط: 10 / مارس / 2012 الساعة 15:55 ajax

عن طريق دوال الاجاكس الخاصة بالجافا سكريبت .. ان اردت مثال .. دعنى اعرف ماذا تريد بالتحديد
9 / مارس / 2012 الساعة 14:3

ياريت مثال
اريد عمل نظام الإشعارات (notifications) كما فى الفيسبوك
واضاً نظام رسائل
9 / مارس / 2012 الساعة 14:11

تتم عبر HTML5 على ما أظن, و هي من أجمل اللغات الحديثة المطورة عن HTML و الفيسبوك و حتى قوقل بلس يستعملها في بعض الحركات الجميلة
9 / مارس / 2012 الساعة 14:19

اتمنى لو كان عندك مثال
9 / مارس / 2012 الساعة 14:35

للأسف لا أعرف عنها الكثير لكن فور أن أحنرف البي اتش بي سأتعلمها لأنها رائعة و أنصح أي شخص أن يتعلم الاساسيات في html و ينطلق لتعلمها
9 / مارس / 2012 الساعة 14:50

انا لا اعتقد ان الـ html5 لها شأن بالموضوع
9 / مارس / 2012 الساعة 14:51

بالعكس أنا حضرت قبل أشهر مؤتمر لقوقل هنا بالمغرب و كانت إحدى الحصص بهذا المؤتمر الذي دام 3 أيام متعلقة ب HTML5, الأشتمل 5 تستطيع أن تصنع به العجب العجاب
9 / مارس / 2012 الساعة 17:34

2 إجابات
Salamo Alikom, i hope that example can help you Facebook Style Wall Post Application with jQuery and Ajax

Demo : Demo here...

بواسطة: chlieh
منذ: 9 / مارس / 2012 الساعة 18:53

تعديل: chlieh
منذ: 9 / مارس / 2012 الساعة 18:54

it is not the problem to make the posts revealed after i add it
the problem if i want to import it automatically in another opened page
10 / مارس / 2012 الساعة 3:30

ok
so i think you must use setInterval

You can either use Ajax Push to send a notification that the post is updated, or you can make it pull-driven. The latter would probably be easier for you if you already know jquery and Ajax with PHP.

Periodically check for new records on an interval (using setInterval, for example) and if you find them, load them to the DOM and fade them in. The interval doesn't have to be very tight and waste resources .. maybe something as long as every 30 seconds will do.

Exemple :
HTML PAGE :
-------------------------------------
setInterval('checkForUpdates', 30000);
var lastTime = (new Date()).getTime();
function checkForUpdates() {
$.get('/php-page-that-checks-for-updates.php?timestamp=' . lastTime
, function (results) {
if (results) { /* fade into dom */ }
}
);
lastTime = (new Date()).getTime();
}
-------------------------------------

PHP PAGE

-------------------------
$timestamp = $_REQUEST['timestamp'];
$results = query('SELECT post FROM posts WHERE postTime > "$timestamp");
echo fetch($results);
------------------------------------------

good luck
10 / مارس / 2012 الساعة 3:59

don't u think this will make the website slower ?
10 / مارس / 2012 الساعة 4:4

and what if i want to use it in a chat system
i'll wait the reply after 30 sec?
10 / مارس / 2012 الساعة 4:8

ook download this example and try to understand the code, its very usefl ..

DATABASE
---------------
CREATE TABLE chat
(
id INT PRIMARY KEY AUTO_INCREMENT,
user VARCHAR(50) UNIQUE,
msg VARCHAR(200),
);
-------------------
chat.php
Contains PHP, Javascript and HTML code. Run this file with chat.php?user=yourname
----------------------------
<?php
include('db.php');
if($_GET['user'])
{
$user=$_GET['user'];
?>
<script type="text/javascript" src="http://ajax.googleapis.com/
ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
var user='<?php echo $user;?>';
// Requesting to Database every 2 seconds
var auto_refresh = setInterval(function ()
{
var last_id=$("ol#update li:last").attr("id");
$.getJSON("chat_json.php?q="+user,function(data)
{
$.each(data.posts, function(i,data)
{
if(last_id != data.id)
{
var div_data="<li id='"+data.id+"'><b>"+data.user+"</b>: "+data.msg+"</li>";
$(div_data).appendTo("ol#update");
}
});
});
}, 2000);

// Inserting records into chat table
$(document).ready(function()
{
$('.post').click(function()
{
var boxval = $("#content").val();
var user = '<?php echo $user;?>';
var dataString = 'user='+ user + '&msg=' + boxval;
if(boxval.length > 0)
{
$.ajax({
type: "POST",
url: "chatajax.php",
data: dataString,
cache: false,
success: function(html)
{
$("ol#update").append(html);
$('#content').val('');
$('#content').focus();
}
});
}
return false;
});
});
</script>
// HTML code
<div>
<form method="post" name="form" action="">
<input type='text' name="content" id="content" />
<input type="submit" value="Post" id="post" class="post"/>
</form>
</div>
<?php } ?>
-----------------------
chatajax.php
Contains PHP code. Inserting records into chat table.
--------------------------
<?php
include('db.php');
if($_POST)
{
$user=htmlentities($_POST['user']);
$msg=htmlentities($_POST['msg']);
$user=mysql_escape_String($user);
$msg=mysql_escape_String($msg);
mysql_query("insert into chat(user,msg)values('$user','$msg')");
$sql=mysql_query("select id from chat where user='$user' order by id desc limit 1");
$row=mysql_fetch_array($sql);
$id=$row['id'];
?>
<li id="<?php echo $id; ?&gt;">
<b><?php echo $user; ?>:</b><?php echo $msg;?>
</li>
<?php
}
?>
---------------------------
chat_json.php
Contains PHP code getting latest record from the chat table and output result in JSON format.
----------------------------
<?php
include('db.php');
if($_GET['q'])
{
$user=$_GET['q'];
$sql = mysql_query("select * from chat order by id desc limit 1");
$row=mysql_fetch_array($sql);
$userx=$row['user'];
$id=$row['id'];
$msg=$row['msg'];
if($userx!=$user)
{
echo '{"posts": [';
echo '
{
"id":"'.$id.'",
"user":"'.$userx.'",
"msg":"'.$msg.'"
},';
echo ']}';
} }
?>
------------------------
db.php
PHP database configuration file
------------------------------------
<?php

$mysql_hostname = "Host name";
$mysql_user = "UserName";
$mysql_password = "Password";
$mysql_database = "Database Name";
$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die("Could not connect database");
mysql_select_db($mysql_database, $bd) or die("Could not select database");
?>

Good luck
10 / مارس / 2012 الساعة 4:20

if you think that setInterval slow the page look at this solution :

BASIC EXAMPLE :
----------------------------
$(window).load(function() {
setInterval(nextSlide, 3500);
});

function nextSlide(){
offset += delta;
$("#slideContent").animate({left: -1 * offset}, 1000);
}

---------------------
OPTIMISED EXAMPLE
-------------------------
$(window).load(function() {
setInterval(nextSlide, 3500);
});

function nextSlide(){
offset += delta;
$("#slideContent").stop(true,true).animate({left: -1 * offset}, 1000);
}
--------------
here you can read, how animate works - it fires setInterval function many times. How animate really works in jQuery

http://blog.bigbinary.com/2010/01/25/how-animate-really-works-in-jquery-simple-animation-case-discussed.html
10 / مارس / 2012 الساعة 4:35

مجهود رائع
10 / مارس / 2012 الساعة 9:22

Thanks alot chlieh even the 1st examply (chat) didn't work with me will but i got it
i'll search again in chat script and let you know the result
10 / مارس / 2012 الساعة 15:53

well*
10 / مارس / 2012 الساعة 15:55

كل هذه الاشياء تتم بالاجاكس .. وللتسهيل عليك استعمال ايطار عمل وليكن الجى كويرى jQuery وكمثال لما تريد .. ارسال شىء post او get دون تحميل الصفحة والرجوع بالتجاوب من السيرفر يتم عن طريق دوال الاجاكس Ajax مثل jQuery.ajax() او jQuery.get() ومن اللمكن ايضا استعمال دالة تحميل شىء معين داخل الصفحة وهى .load() اما بالنسبة لتجديد الشىء او التاكد من شىء معين كل عدد من الثوانى كشات الفيسبوك او فكرة التجديد الدائم تقوم على اساس الدالة الخاصة بالجافا سكريبت وهى setInterval()

بواسطة: molhm
منذ: 9 / مارس / 2012 الساعة 14:18

المشكلة انه فى الفسبوك بتحدث علطول مش بعمل تشك كل وقت معين
9 / مارس / 2012 الساعة 14:24

اى شىء من هذا يعتمد على عدد من الثوانى او اجزاء من الثوانى مهما كان صغير
9 / مارس / 2012 الساعة 14:38

شوف هذا الموضوع "6 jQuery growl-like notification systems"
9 / مارس / 2012 الساعة 14:39

المشكلة مش فى العرض
دلوقتى انا لو عملت زى مانت بتقول
الموقع هيبقى تقيل شوية
وخصوصاً ان انا بستدعى معلومات من قاعدة البيانات كل جزء من الثانة زى مابتقول
9 / مارس / 2012 الساعة 14:48

الموضوع كما قاللك الاخوة سابقاً والدليل

لو انك فتحت صفحتين في الفيسبوك وكتبت رسالة لشخص فإذا نظرت الى الصفحة الاخرى مباشرة فلن تصل الرسالة الا بعد ثانية او اكثر
9 / مارس / 2012 الساعة 17:26

يا اخى لا توجد طريقة اخرى سوى setInterval اما بالنسبة للشات .. فلها تقنيات مختلفة
9 / مارس / 2012 الساعة 17:54

اخى ماك أو اس
ماهى التقنيات المختلفة
10 / مارس / 2012 الساعة 3:31

أنشر اجابتك

xهل تريد الاجابة عن هذا السؤال؟ من فضلك سجل دخول او اشترك لتتمكن من الاجابة