رفتن به مطلب

استفاده چند باره یک اسکریپت در صفحه اصلی یا در برگه


پست های پیشنهاد شده

سلام من میخوام این کد رو چند بار مثلا 4 بار در برگه قرار بدم


<script type="text/javascript">
function Ajax(){
var xmlHttp;
try{
xmlHttp=new XMLHttpRequest();// Firefox, Opera 8.0+, Safari
}
catch (e){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
}
catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){
alert("No AJAX!?");
return false;
}
}
}
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
document.getElementById('ReloadThis').innerHTML=xmlHttp.responseText;
setTimeout('Ajax()',10000);
}
}
xmlHttp.open("GET"," http://www.damin.ir/news1/ ",true);
xmlHttp.send(null);
}
window.onload=function(){
setTimeout('Ajax()',10);
}
</script>

قبلش بگم این کد خودش یه برگه دیگه رو فراخوانی میکنه حالا اگه دو بار از این کد توی یه برگه استفاده کنم فقط یه کد کار میکنه دومی کار نمیکنه چیکار کنم که اگه این کد رو دو یه سه بار در برگه استفاده کنم هر کدوم از کد ها به طور مجزا کار خودشون رو انجام بدند . ممنون

ویرایش شده توسط iman64
لینک به ارسال

سلام، خب شما یک تابع که بیشتر نمیتوانید تعریف کنید و آن هم Ajax هست.

بهتره تابع Ajax را یکبار قرار دهید و آن را چندین بار فراخوانی کنید.

<script type="text/javascript">
function Ajax(){
var xmlHttp;
try{
xmlHttp=new XMLHttpRequest();// Firefox, Opera 8.0+, Safari
}
catch (e){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
}
catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){
alert("No AJAX!?");
return false;
}
}
}
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
document.getElementById('ReloadThis').innerHTML=xmlHttp.responseText;
setTimeout('Ajax()',10000);
}
}
xmlHttp.open("GET"," http://www.damin.ir/news1/ ",true);
xmlHttp.send(null);
}
window.onload=function(){
setTimeout('Ajax()',10);
}
window.onload=function(){
setTimeout('Ajax()',10);
}
window.onload=function(){
setTimeout('Ajax()',10);
}
window.onload=function(){
setTimeout('Ajax()',10);
}
</script>

لینک به ارسال

فرض کنید این کد در یه کادر اجرا میشه و در این کد یه برگه فراخوانیش میشه . حالا من میخوام چندین کادر با استفاده از هیمن کد درست کنم با این تفاوت در هر کادر اطلاعات برگه دیگری فراخوانی بشه مثلا میخوام در یکی از این کادر ها این برگه


xmlHttp.open("GET"," http://www.damin.ir/news1/ ",true);

و در کادر دیگری این برگه


xmlHttp.open("GET"," http://www.damin.ir/news2/ ",true);

فراخوانی بشه

لینک به ارسال

چرا از جی‌کوئری استفاده نمیکنید؟!

ابزارهای بهتر و بیشتر در اختیارتون قرار میده.

Ajaxش هم پیشرفته تره.

لینک به ارسال

ببینید مطالبی که وارد این کادر میشه به طور خودکار به روزرسانی میشه و مشکلی اصلا نداره فقط خواستم موضوعات رو زیاد کنم و کادر های با موضوعات متفاوتی داشته باشم چون سیستم سایتم خبری هست این کادر چون خودش به روزرسانی میشه مناسب هست اما فقط نیاز به کادر های بیشتری دارم که با این کد نمیشه فقط یه کادر اجرا میشه . پیشنهاداتی هم که دادین خوبه اما خب من وارد نیستم که باید از اول شروع کم که باز راه طولانی میشه . اما اگه با پیشنهاداتی که دادین میشه همچین کادر هایی ایجاد کرد خب مجبورم از اول شروع کنم . منتظر راهنماییاتون هستم

لینک به ارسال

البته اینکار تاثیر خیلی زیادی روی بالا رفتن مصرف منابعتون داره که معمولا باعث می شه از طرف سرور ساسپند بشید اما اگر سرورتون اختصاصیه یا خیلی قویه می تونید همونطور که فرمودند به راحتی با آژاکس جی کوئری اینکار را بکنید

لینک به ارسال

روشی که خودم دارم استفاده میکنم هم از منابع زیادی استفاده میکنه؟

خب با این حال من میخوام چند کادر ایجاد کنم ( به فرض 2 کادر نمونش رو در پیوست گذاشتم) داخل هر کادر هم همون کد های اسکریپتمون , البته با این تفاوت که هر کدوم از اسکیپتمون یه ادرس خاص فراخوانی میکنه . من که دو اسکریپت در یه برگه استفاده کردم نشد شاید جاگزاریش اشتباه بوده . اصلا ایا استفاده از دو اسکریپت شبیه هم امکان داره؟

یا شاید کار دیگری باید کرد مثلا تابع رو یک بار استفاده کنیم و کاری کرد ادرس های زیادی فراخوانی کرد؟ منظورم این ادرس ها است


xmlHttp.open("GET"," http://www.damin.ir/news1/ ",true);

xmlHttp.open("GET"," http://www.damin.ir/news2/ ",true);

post-6105-0-68004600-1400867031_thumb.pn

ویرایش شده توسط iman64
لینک به ارسال

نشانی آنلاین بگذارید

روش شما بیشتر از جی کوئری منابع استفاده می کنه و البته منابع اصلی بخاطر مکرر شدن سئوالات بین دیتابیس و صفحه است

تا جایی که می دونم خبرگزاری فارس هم اینکار را نمی کنه

مگر روی تلکست که فلسفه اش متفاوته

لینک به ارسال

البته اگر از Ajax جی‌کوئری هم استفاده کنید، setTimeout را هم باید در سورس کدتان به کار ببرید.

جی‌کوئری ابزارهای بهتر و آسانتری در اختیار شما قرار میدهد.

لینک به ارسال

از کد زیر استفاده کردم اما زیاد جالب نبود مطالب صفحه مورد نظر رو وقتی می اورد هر چند ثانیه محو میکنه .


<script type="text/javascript">
$(function() {
setInterval(function() {
$("<p/>").hide().load("/news/", function() {
$(this).prependTo("#foo").fadeIn("slow");
});
}, 15000);
});
</script>

همون کد خودمون خب با کد زیر فراخوانی میشه


<div id="ReloadThis" class=" sss1">در حال بارگزاری ... </div>

گفته شد که یه بار تابع استفاده بشه و چندین بار فراخوانی بشه . خب ما با استفاده از


id="ReloadThis"

صفحه مورد نظر رو فراخوانی میکنیم صفحه مورد نظر هم در این کد


xmlHttp.open("GET"," [url="http://www.damin.ir/news1/"]http://www.damin.ir/news1/[/url] ",true);


وجود داره

خب میشه کد اصلیمون رو جوری تغییر بدیم که داخلش چندین لینک همراه با ایدی فراخوانی خاص بذاریم مثل این :


xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
document.getElementById('ReloadThis').innerHTML=xmlHttp.responseText;
setTimeout('Ajax()',10000);
}
}
xmlHttp.open("GET"," http://www.damin.ir/news1/ ",true);
xmlHttp.send(null);
// و
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
document.getElementById('ReloadThis2').innerHTML=xmlHttp.responseText;
setTimeout('Ajax()',10000);
}
}
xmlHttp.open("GET"," http://www.damin.ir/news2/ ",true);
xmlHttp.send(null);

و در فراخوانی هم هر وقت اینو زدیم


<div id="ReloadThis" class=" sss1">در حال بارگزاری ... </div>

اصلاعات d="ReloadThis"

بیاره و هر وقت اینو زدیم


<div id="ReloadThis2" class=" sss1">در حال بارگزاری ... </div>

اطلاعات صفحه مربوط به d="ReloadThis2" بیاره

ویرایش شده توسط iman64
لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...