برگزیده های پرشین تولز

مشکل ای جکس با اینترنت اکسپلورر

byvafa

کاربر تازه وارد
تاریخ عضویت
7 آپریل 2005
نوشته‌ها
175
لایک‌ها
0
چند وقتی یه مشکل با ای جکس تو اینترنت اکسپلورر دارم که نمی دونم چه طوری حلش کنم ...
ببینید اینجا من یه صفحه php دارم که یه عدد رندوم بهمون میده ( به اسم random.php) :
PHP:
<?php
$random = rand(1, 1000);
echo $random;
?>

و یه فایل html که با یه چند تا خط ساده به روش ای جکس اطلاعات ( همون random.php رو چاپ می کنه ) :
HTML:
<html>
<head>
<title>test ajax</title>
<script language="javascript">
function rand () {
	if (window.ActiveXObject) {
		xml = new ActiveXObject ('Microsoft.XMLHTTP');
	} else {
		xml = new XMLHttpRequest();
	}
	xml.open('GET', 'random.php', true);
	xml.send(null);
	xml.onreadystatechange = function () {
		if (xml.readyState == 4 && xml.status == 200) {
			document.getElementById('test').innerHTML = 

xml.responseText;
		}
	}
}
</script>
</head>
<body>
<div id="test"></div>
<script>rand();</script>
<br>
<br>
<input type="button" value="random number" onClick="rand()">
</body>
</html>

توی IE فقط یکبار بهمون عدد رندوم رو می ده که برای دفعه بعد حتی اگه صفحه رو رفرش هم بکنیم جواب نمیده ولی با firefox مشکلی نداره ...

ممنون می شم فقط بگذارید ...:)
 

alik

کاربر قدیمی پرشین تولز
تاریخ عضویت
23 سپتامبر 2005
نوشته‌ها
2,146
لایک‌ها
1,232
اگر اشتباه نکنم حالا شما امتحان کن شاید به خاطر کد 200 باشه :) یکبار که در ie این کد را اجرا کنید وضعیت صفحه دریافتی 200 هست ولی برای بار دوم به بعد وضعیت صفحه فکر کنم اکر درست یادم باشه 304 میشه ...

این شرط را حذف کنید و مجدد امتحان کنید فکر کنم درست میشه :)
 

firebird

Registered User
تاریخ عضویت
2 جولای 2005
نوشته‌ها
1,424
لایک‌ها
10
سن
46
کد:
xml.open('GET', 'random.php?t=' + date.getTime(), true);
 

byvafa

کاربر تازه وارد
تاریخ عضویت
7 آپریل 2005
نوشته‌ها
175
لایک‌ها
0
اگر اشتباه نکنم حالا شما امتحان کن شاید به خاطر کد 200 باشه :) یکبار که در ie این کد را اجرا کنید وضعیت صفحه دریافتی 200 هست ولی برای بار دوم به بعد وضعیت صفحه فکر کنم اکر درست یادم باشه 304 میشه ...

این شرط را حذف کنید و مجدد امتحان کنید فکر کنم درست میشه :)

آقا علی اینجوری نشد .... علی جان این کد داخل فایرفکس به خوبی کار میکنه با این حال فکر می کنی که به 304 تغییر میکنه ؟

کد:
xml.open('GET', 'random.php?t=' + date.getTime(), true);

خیلی خوشحالم ... :lol: شد ...
خیلی ممنون .. البته کد شما رو قبول نکرد من به این تغییر دادم شد ... :

کد:
	a = new Date ();
	xml.open('GET', 'random.php?t=' + a.getTime(), true);
در واقع همون کار شما رو کردم ولی به خاطر پیام خطایی می داد تاریخ رو تو یه متغیر بهش دادم ...
راستی این راه حلش اینه که آدرس صفحاتی که لود میشن باید با هم فرق کنن ؟

این هم به کد PHP اضافه کن شاید فرجی بشه
PHP:
<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
?>

آقا میلاد از شما هم ممنون ... با کد شما هم درست شد ...
اما میشه توضیح بدید چکار کردید ... من این هدر ها رو هیچ فقط کامل نخوندم ... صفحه رو نمی زارید کش شه درسته ؟

از همه دوستان ممنون
 

firebird

Registered User
تاریخ عضویت
2 جولای 2005
نوشته‌ها
1,424
لایک‌ها
10
سن
46
البته کد شما رو قبول نکرد من به این تغییر دادم شد ... :

کد:
	a = new Date ();
	xml.open('GET', 'random.php?t=' + a.getTime(), true);
در واقع همون کار شما رو کردم ولی به خاطر پیام خطایی می داد تاریخ رو تو یه متغیر بهش دادم ...
راستی این راه حلش اینه که آدرس صفحاتی که لود میشن باید با هم فرق کنن ؟
[/B]

من اون كد رو از حفظ نوشتم. الان كه نگاه ميكنم ميبينم حق با شماست و درستش اونيه كه شما نوشتي. در مورد راه حل هم URL رو كه تغيير بدي هيچ وقت از cache نميخونه.
 

miladmovie

مدیر بازنشسته
کاربر فعال
تاریخ عضویت
25 دسامبر 2002
نوشته‌ها
1,939
لایک‌ها
3
سن
39
آقا میلاد از شما هم ممنون ... با کد شما هم درست شد ...
اما میشه توضیح بدید چکار کردید ... من این هدر ها رو هیچ فقط کامل نخوندم ... صفحه رو نمی زارید کش شه درسته ؟

پس آلان وقت مناسبی هست که بخونیدش header :p;)
 

byvafa

کاربر تازه وارد
تاریخ عضویت
7 آپریل 2005
نوشته‌ها
175
لایک‌ها
0
من اون كد رو از حفظ نوشتم. الان كه نگاه ميكنم ميبينم حق با شماست و درستش اونيه كه شما نوشتي. در مورد راه حل هم URL رو كه تغيير بدي هيچ وقت از cache نميخونه.

خیلی ممنون از راهنماییتون ..:happy:

پس آلان وقت مناسبی هست که بخونیدش header :p;)

همین حالا شروع کردم ... ممنون:hmm:
 
بالا