פונקציית includes מחזירה לי שגיאה, פעם כן פעם לא.
-
@אבי-203 לפי בדיקה מהירה שלי אין דרך להגביל את התצוגה לכמות מסויימת ב-repeater של wix. אז צריך להעתיק למערך חדש כמו ש-@WWW אמר:
const muzarim0 = [...data2].splice(0, 10);
הסבר:
[]
יוצר מערך חדש
[1, 2, 3]
יוצר מערך עם הערכים 1, 2, ו-3
[...data2]
יוצר מערך חדש עם הערכים של המערךdata2
splice(0, 10)
מוחק 10 ערכים מאינדקס 0, ומחזיר אותם במערך חדש.אפשר גם לעשות את הפעולה ב-2 שורות בלי ליצור מערך נוסף שלא לצורך:
const muzarim0 = [...data2]; muzarim0.splice(0, 10)
-
@yossiz אמר בפונקציית includes מחזירה לי שגיאה, פעם כן פעם לא.:
const muzarim0 = [...data2]; muzarim0.splice(0, 10)
כבר כמה שעות על זה. איפה אני טועה??? תמיד בשלב השני, כלומר הוא טוען את ה9 השניים, נטען בסך הכל 18 ואז הוא עוצר. נסיתי הכל..
let sac; let data3 // let data3; export async function box108_viewportEnter(event) { $w('#html1').show() console.log(sac); data2 = data2.items if (sac === undefined) { sac=9 data3 = await getTeamData2() } console.log(sac); const count = data3.push(); console.log(count); let sicum= count-sac if (sicum < 0) { $w('#sof').show() $w('#html1').hide() }else{ let data5 = [...data3]; data5 = data5.splice(sac,9) data2 = [...data2 ,...data5 ]; console.log(data3); console.log(data5); console.log(data2); // concat $w("#repeater10").data = data2 sac = sac + 9 $w('#html1').hide() } //Add your code for this event here: }
-
@yossiz אמר בפונקציית includes מחזירה לי שגיאה, פעם כן פעם לא.:
length
תודה רבה. גם על ה length, לא ידעתי שהיא מחשבת גם את זה.
הסבר:
כחלק מנסיונותי להאיץ את טעינת הדף, בניתי שבטעינת הדף מקבל 9 פריטים ולאחר מכן השרת שולח את הכל ושומר במשתנה, ואז כשגוללים לסוף הפריטים, אני מביא עוד תשע פריטים נוספים ומחבר אותם לקייימים. זה עובד נהדר, רק שהוא עוצר בפעם השנייה כנראה שזה מביא לו שוב את אותם ה9.
אני חישבתי את זה שבכל הפעלה של הפונקצייה אני מוסיף על משתנה sac +9 כך שכל פעם יתקדם ל9 הבאים, משהו בדרך אני טועה.
ושוב תודה רבהה// עם טעינת הדף הראשונה let data2; let data3; $w.onReady(async function () { // מקבל תשע פריטים ראשונים data3 = await wixData.query("muzarim") .descending("seder") // .skip(10) .limit(9) .find(); $w('#repeater10').data = data3.items; //פונקציית שיבוץ המידע ברפיטרים repiter() $w('#container').show() // מפעיל פונקציית דרך צד שרת שמביא לי את כל הפריטים ושומר במשתנה data2 data2 = await getTeamData2() }) // כאשר גוללים את הדף ומגיע לתחתית הפריטים ומתגלה אלמנט שנמצא בסוף, אני מנסה להוסיף בכל הפעלה של הפונקצייה הזו, עוד 9 פריטים הבאים, ולחבר אותם לקיימים. let sac; export async function box108_viewportEnter(event) { $w('#html1').show() console.log(sac); data3 = data3.items if (sac === undefined) { sac = 9 } console.log(sac); const count = data2.length; console.log(count); let sicum= count-sac if (sicum < 0) { $w('#sof').show() $w('#html1').hide() }else{ let data5 = [...data2]; let data8 = data5.splice(sac,9) data3 = [...data3 ,...data8 ]; console.log(data3); console.log(data5); console.log(data2); console.log(data8); $w("#repeater10").data = data3 sac = sac + 9 $w('#html1').hide() } }
-
@yossiz ואווו איזה מבריק!!!! תודדדה
צדקת אני עכשיו גם מבין למה זה בעייתי.
כי בעצם בפעם הראשונה הוא מפרק את זה ל data3.items
אח"כ בפעם השנייה כבר זה מפורק והוא מנסה לשוא לפרק את זה שוב.
אז העברתי את זה לטעינה הראשונה. תודדדהאיבדתי את הריכוז בכולל היום, בגלל הדבר הזה...
אגב מה שעשיתי זה הדרך המקובלת לטעון דפי מוצרים, או שיש דרכים יותר נכונות ופשוטות, ומהירות?.
-
@אבי-203 אמר בפונקציית includes מחזירה לי שגיאה, פעם כן פעם לא.:
אגב מה שעשיתי זה הדרך המקובלת לטעון דפי מוצרים, או שיש דרכים יותר נכונות ופשוטות, ומהירות?.
מה בדיוק אתה עושה ואיך זה אמור לחסוך, האם אתה שולח את המוצרים הראשונים יחד עם הHTML הראשוני, או שקודם הHTML נטען ואחר כך אתה עושה שתי שאילתות?