הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   צריך עזרה ביישום משהו , הבעיה עם JS .. (https://hosts.co.il/forums/showthread.php?t=48445)

X-T 27-06-07 18:51

צריך עזרה ביישום משהו , הבעיה עם JS ..
 
שלום, אני מנסה ליישם דבר כזה
להוסיף סקריפט בדף כלשהו שיגריל משפט ראנדומלי ממערך, וכל X זמן יעשה ריפרש רק לחלק ממנו הוא קורא את זה ולא לכל העיצוב...

הקוד שלי כזה:

PHP קוד:

<SCRIPT LANGUAGE="JavaScript">
function 
rand()
{
quotes = new Array(3);
quotes[0] = "sddd";
quotes[1] = "dfdfff";
quotes[2] = "gggg";
index Math.floor(Math.random() * quotes.length);
document.write(quotes[index]);
}
rand();

</SCRIPT> 

כמה בעיות: שימוש בב SETINTERVAL עלוב ביותר, תוקע לי את כל הדף אחרי REFRESH אחד וגם טוען הכל מחדש.

האם יש דרך נוספת ליישם את זה? האם אפשר עם AJAX? ואם כן אז איך, ואם אפשר עם PHP אז איך...

תודה.

meshuga 27-06-07 18:53

ציטוט:

נכתב במקור על ידי X-T (פרסם 508756)
שלום, אני מנסה ליישם דבר כזה
להוסיף סקריפט בדף כלשהו שיגריל משפט ראנדומלי ממערך, וכל X זמן יעשה ריפרש רק לחלק ממנו הוא קורא את זה ולא לכל העיצוב...

הקוד שלי כזה:

PHP קוד:

<SCRIPT LANGUAGE="JavaScript">
function 
rand()
{
quotes = new Array(3);
quotes[0] = "sddd";
quotes[1] = "dfdfff";
quotes[2] = "gggg";
index Math.floor(Math.random() * quotes.length);
document.write(quotes[index]);
}
rand();

</SCRIPT> 

כמה בעיות: שימוש בב SETINTERVAL עלוב ביותר, תוקע לי את כל הדף אחרי REFRESH אחד וגם טוען הכל מחדש.

האם יש דרך נוספת ליישם את זה? האם אפשר עם AJAX? ואם כן אז איך, ואם אפשר עם PHP אז איך...

תודה.

בטח שאפשר עם AJAX.
אני לא מבין איך "שימוש בב SETINTERVAL עלוב ביותר" כי איך שלא תבנה את זה, בסופו של דבר תשתמש בו או בsetTimeout...

אגב, אני לא מבין, את התוכן אתה סתם באמצע הדף מדפיס באמצעות document.write?..

X-T 27-06-07 18:55

ציטוט:

נכתב במקור על ידי meshuga (פרסם 508757)
בטח שאפשר עם AJAX.
אני לא מבין איך "שימוש בב SETINTERVAL עלוב ביותר" כי איך שלא תבנה את זה, בסופו של דבר תשתמש בו או בsetTimeout...

אגב, אני לא מבין, את התוכן אתה סתם באמצע הדף מדפיס באמצעות document.write?..

בתוך MARQUEE ואיך עם AJAX

meshuga 27-06-07 18:59

ציטוט:

נכתב במקור על ידי X-T (פרסם 508760)
בתוך MARQUEE ואיך עם AJAX

תעשה דף בPHP שיוציא לפלט כל פעם רנדומלי ובעזרת AJAX תיקח את הפלט.

אגב, איזה ערך שמת בINTERVAL?

Meir 27-06-07 19:03

הכי פשוט זה עם setInterval

HTML קוד:

<SCRIPT LANGUAGE="JavaScript">
function rand()
{
quotes = new Array(3);
quotes[0] = "sddd";
quotes[1] = "dfdfff";
quotes[2] = "gggg";
index = Math.floor(Math.random() * quotes.length);
document.getElementById('a').innerHTML = quotes[index];
}


setInterval("rand()", 1000);

</SCRIPT>

<div id="a"></div>


X-T 27-06-07 19:11

ציטוט:

נכתב במקור על ידי elbaz.maor (פרסם 508763)
הכי פשוט זה עם setInterval

HTML קוד:

<SCRIPT LANGUAGE="JavaScript">
function rand()
{
quotes = new Array(3);
quotes[0] = "sddd";
quotes[1] = "dfdfff";
quotes[2] = "gggg";
index = Math.floor(Math.random() * quotes.length);
document.getElementById('a').innerHTML = quotes[index];
}


setInterval("rand()", 1000);

</SCRIPT>

<div id="a"></div>


ואם אני מעונין שבפעם הראשונה שהוא נטען הוא יעלה ישר ולא יחכה? הרי אם אני מגדיר שהוא ישתנה כל 10 שניות, אף אחד לא יחכה לזה, כיצד ניתן לעשות זאת?

meshuga 27-06-07 19:13

ציטוט:

נכתב במקור על ידי X-T (פרסם 508769)
ואם אני מעונין שבפעם הראשונה שהוא נטען הוא יעלה ישר ולא יחכה? הרי אם אני מגדיר שהוא ישתנה כל 10 שניות, אף אחד לא יחכה לזה, כיצד ניתן לעשות זאת?

אז אתה עושה
rand();
ואז
setInterval("rand()", 10000);

X-T 27-06-07 19:20

אם אני עושה ככה הוא לא מתייחס לsetinterval ....
ואיך אני משלב את זה בתוך MARQUEE?

somebody 28-06-07 00:32

ציטוט:

נכתב במקור על ידי X-T (פרסם 508778)
אם אני עושה ככה הוא לא מתייחס לsetinterval ....
ואיך אני משלב את זה בתוך MARQUEE?

שים בתוך המרקיו DIV, ותקבע לה DIV , ID, ואז תשים ע"י innerHTML את תוכן המשפט בה DIV.

וכמו שאמרו לך פה, פעם ראשונה תפעיל את הפונקציה, ואז את ה setInterval.

X-T 28-06-07 05:51

ציטוט:

נכתב במקור על ידי somebody (פרסם 509057)
שים בתוך המרקיו DIV, ותקבע לה DIV , ID, ואז תשים ע"י innerHTML את תוכן המשפט בה DIV.

וכמו שאמרו לך פה, פעם ראשונה תפעיל את הפונקציה, ואז את ה setInterval.

כאשר אני קורא לפונקציה לפני הפקודה, זה כנראה מבטל את ה setInterval.

ולתת גם ל MARQUEE את ה ID של זה?

4ior 28-06-07 08:16

תשים את הsetInterval בתוך הפונקציה
ואז תקרא לפונקציה.

meshuga 28-06-07 08:17

ציטוט:

נכתב במקור על ידי 4ior (פרסם 509117)
תשים את הsetInterval בתוך הפונקציה
ואז תקרא לפונקציה.

ממש לא טוב, יהיה לו אין סוף setInterval...דבר שעלול להאט ואפילו לתקוע את הדפדפן.

אם הוא עושה ככה(קריאה מתוך הפונקציה), אז הוא צריך להשתמש בsetTimeout...

לדעתי זה בגלל שהוא משתמש בdocument.write, לא יודע כמה זה טוב להשתמש בו..

X-T 28-06-07 12:10

ואי ישבתי על זה המון זמן, זה לא פועל לי ! אשמח לעזרה

Meir 28-06-07 12:20

תקרא לפונקציות setInterval ולrand שלך אחרי הdiv

X-T 28-06-07 12:25

ציטוט:

נכתב במקור על ידי elbaz.maor (פרסם 509242)
תקרא לפונקציות setInterval ולrand שלך אחרי הdiv

אני עכשיו ינסה, אך איך אני משלב את זה בתוך ה MARQUEE

Daniel 28-06-07 12:27

PHP קוד:

<script type="text/javascript">
function 
rand()
{
quotes = new Array(3);
quotes[0] = "sddd";
quotes[1] = "dfdfff";
quotes[2] = "gggg";
index Math.floor(Math.random() * quotes.length);
document.getElementById('a').innerHTML quotes[index];
}
rand();

setInterval("rand()"1000);

</script>

<marquee><div id='a'>t</div></marquee> 

למרות שיכול להיות שאפשר ישירות לעשות innerHTML למרקויי.

X-T 28-06-07 12:30

ציטוט:

נכתב במקור על ידי MasterT (פרסם 509253)
PHP קוד:

<script type="text/javascript">
function 
rand()
{
quotes = new Array(3);
quotes[0] = "sddd";
quotes[1] = "dfdfff";
quotes[2] = "gggg";
index Math.floor(Math.random() * quotes.length);
document.getElementById('a').innerHTML quotes[index];
}
rand();

setInterval("rand()"1000);

</script>

<marquee><div id='a'>t</div></marquee> 

למרות שיכול להיות שאפשר ישירות לעשות innerHTML למרקויי.

מה שנתת בכלל לא משתנה. טקסט קבוע.
וגם לא הצלחתי לטעון אותו ישר, שמתי אפילו את ה SETINTERVAL כפונקציה וקראתי לזה ול RAND ולא פעל :\

Daniel 28-06-07 12:35

PHP קוד:



<marquee><div id='a'>t</div></marquee>

<
script type="text/javascript">
function 
rand()
{
quotes = new Array(3);
quotes[0] = "sddd";
quotes[1] = "dfdfff";
quotes[2] = "gggg";
index Math.floor(Math.random() * quotes.length);
document.getElementById('a').innerHTML quotes[index];
}
rand();

setInterval("rand()"1000);

</script> 


X-T 28-06-07 13:08

וואלה תודה, הייתי קרוב לפיתרון :)

Daniel 28-06-07 13:32

אין בעד מה :)
פשוט ה-DIV הוגדר אחרי הקוד P:

ViPeRt 28-06-07 22:38

מה שעשיתם זה לא טוב
כי כל פעם הוא מפעיל את הפקודה פעמיים...
הנה קוד טוב:

HTML קוד:

<body onload="rand();">
<SCRIPT LANGUAGE="JavaScript">
function rand()
{
quotes = new Array(3);
quotes[0] = "111";
quotes[1] = "222";
quotes[2] = "333";
index = Math.floor(Math.random() * quotes.length);
document.getElementById('r').innerHTML = quotes[index];
}

setInterval("rand()", 1000);
</SCRIPT>
<marquee><div id="r"></div></marquee>


Daniel 29-06-07 11:23

דווקא מה שעשינו מצויין, ואם תסתכל, תראה שהוא ביקש שזה יופעל פעם אחת בהתחלת הדף


כל הזמנים הם GMT +2. הזמן כעת הוא 23:40.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ