PDA

View Full Version : سوال: نمایش ساعت با استفاده از Ajax



hamedsabzian
چهارشنبه 18 فروردین 1389, 03:00 صبح
سلام خدمت اساتید محترم.
برای گرفتن ساعت از سرور از کد javascript زیر استفاده کردم.



<script language = "javascript" type="text/javascript">
var XMLHttpRequestObject = false;
if (window.XMLHttpRequest) {
XMLHttpRequestObject = new XMLHttpRequest();
} else if (window.ActiveXObject) {
XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}
function GetTime()
{
if(XMLHttpRequestObject) {
XMLHttpRequestObject.open("GET","../TimeHandler.aspx?);
XMLHttpRequestObject.onreadystatechange = function()
{
if (XMLHttpRequestObject.readyState == 4 &&
XMLHttpRequestObject.status == 200) {
document.getElementById("Time").innerHTML = XMLHttpRequestObject.responseText;
}
}
XMLHttpRequestObject.send(null);
}
}
setInterval("GetTime()",1000);
</script>

توی Page_Load صفحه ی TimeHandler.aspx هم کد زیر رو نوشتم



context.Response.Write(DateTime.Now.ToLongTimeStri ng());
context.Response.End();

ولی تنها ثانیه اول زمان رو میگیره و تو دفعات بعد باز همون مقدار رو از سرور میگیره. انگار صفحه کش میشه. حالا اگه یه پارا متر به صفحه بدم، مثل یک عدد رندم و یا زمان جاری کلاینت، درست کار می کنه.
می خواستم بدونم راهی هست که بدون ارسال پارامتر هر ثانیه ساعت رو از سرور گرفت؟

Behrouz_Rad
چهارشنبه 18 فروردین 1389, 08:58 صبح
می خواستم بدونم راهی هست که بدون ارسال پارامتر هر ثانیه ساعت رو از سرور گرفت؟

نه راهی وجود نداره یا حداقل من تا به حال ندیدم. rapidshare هم زمان جاری رو به انتهای URL اضافه می کنه.

موفق باشید.

alireza_s_84
چهارشنبه 18 فروردین 1389, 11:44 صبح
سلام با اجازه مهندس راد:
شما میتونید از اینترفیس ICallbackEventHandler استفاده کنید و با استفاده از اون زمان رو دریافت کنید وگرنه باید (همونطور که مهندس راد گفتن) به انتهای درخواست GET یک زمانی و یا چیزی بچسبونی دیگه.