Devspeed

התחברות

devspeed avatar profile

התחברות

הבלוג של DEVSPEED

Node.js לבניית אתרים עם נתונים שמתעדכנים בזמן אמת

איך מחברים לוח מידע לעדכונים מהשרת ובוחרים בין SSE ל־WebSocket. תכנון של חיבור מחדש ושמירת נתונים לצד הבנה של המתנה וחישוב ב־Node.js.

מדפסות תלת־ממד וסלילי חומר במעבדת יצירה קהילתית
המחשה שנוצרה בבינה מלאכותית

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

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

מה Node.js עושה מאחורי העמוד

Node.js היא סביבת הרצה של JavaScript מחוץ לדפדפן. בצד השרת היא יכולה לקבל בקשות HTTP, לקרוא נתונים ממסד נתונים ולהחזיר תשובות לממשק. היא אינה ספרייה שמציירת את הכרטיסים על המסך. את החלק הזה אפשר לבנות באמצעות React או בטכנולוגיית ממשק אחרת.

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

Event Loop אינה מעבד שמחשב הכול במקביל

בלב העבודה של Node.js נמצאת לולאת האירועים. היא מתאמת טיפול בבקשות ובתוצאות של פעולות אסינכרוניות. בזמן שממתינים לתשובה מרשת או ממסד נתונים, אין הכרח להשאיר את קוד ה־JavaScript עסוק בהמתנה. אפשר לחזור ולטפל באירועים אחרים עד שהתוצאה מוכנה.

מכאן מגיע חלק מההתאמה למערכות שמנהלות הרבה פעולות קלט ופלט. אבל צריך להבחין בין המתנה לבין חישוב. קריאה לשירות אחר יכולה להמתין באופן אסינכרוני. לולאה שמבצעת חישוב ארוך ב־JavaScript ממשיכה לצרוך את זמן הריצה שלה. הוספת המילה async לפונקציה אינה מעבירה את החישוב אוטומטית לליבה אחרת.

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

Node.js נעזרת במערכת ההפעלה ובמאגר עובדים פנימי עבור סוגים מסוימים של עבודה. המאגר הזה אינו אומר שכל פונקציית JavaScript ארוכה עוברת אליו מעצמה. גם Worker Threads שמפעילים קוד JavaScript במקביל הם מנגנון נפרד שצריך לבחור ולנהל. כדי להחליט מה מתאים, קודם בודקים אם הזמן מתבזבז בהמתנה או בחישוב.

קודם מגדירים מה פירוש מצב עדכני

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

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

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

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

בקשה רגילה או חיבור שנשאר פתוח?

מי שנכנס ללוח צריך קודם תמונת מצב מלאה. בקשת HTTP ל־API יכולה להחזיר את רשימת העמדות ואת מצבן הנוכחי. לאחר מכן מחליטים איך לקבל שינויים. אין חובה לבחור באותה דרך גם עבור התמונה הראשונית וגם עבור העדכונים.

דרך העדכון מתי היא מתאימה
בקשות תקופתיות כשהמידע משתנה מעט והמתנה קצרה לעדכון מקובלת.
SSE כשהשרת שולח עדכונים ללוח והדפדפן בעיקר מקשיב להם.
WebSocket כשנדרשת תקשורת מתמשכת בשני הכיוונים כחלק מהשימוש.

SSE הם אירועים שנשלחים מהשרת לדפדפן דרך חיבור מתמשך. בדפדפן אפשר לקבל אותם באמצעות EventSource. הכיוון הוא מהשרת ללקוח. זה מתאים ללוח הזמינות הציבורי: כשעמדה משתנה, הכרטיס שלה מתעדכן. פעולה של המפעילה יכולה עדיין להישלח בבקשת HTTP רגילה ונפרדת.

WebSocket מאפשר להעביר הודעות בשני הכיוונים באותו חיבור. הוא יכול להתאים לממשק שיתופי שבו כמה אנשים מעדכנים מצב ועוקבים אחר פעולות זה של זה. אין צורך לבחור בו רק כי המילה זמן אמת מופיעה באפיון. לוח שרק מקבל עדכונים אינו דורש בהכרח ערוץ דו־כיווני.

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

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

מסך קיר עם כרטיסיות מצב ליד מדפסת תלת־ממד
תצוגת זמינות צריכה להבדיל בין מצב עדכני לבין מידע שטרם הסתנכרן · המחשה שנוצרה בבינה מלאכותית

מה עושים כשהטלפון מאבד את החיבור

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

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

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

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

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

המצב לא יכול לחיות רק בזיכרון של Node.js

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

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

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

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

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

Worker Threads ותור משימות פותרים בעיות שונות

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

להפעלת עובדים ולהעברת מידע ביניהם יש עלות. לכן בדרך כלל לא יוצרים עובד חדש לכל פעולה קטנה. אפשר להשתמש במאגר עובדים ולתת לכל אחד משימה מתאימה. עדיין צריך להגביל את כמות העבודה שמתחילה יחד; יותר עובדים אינם יוצרים משאבי מעבד שלא קיימים.

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

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

איך יודעים שהלוח באמת מעודכן

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

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

למערכת פעילה בוחרים ענף Node.js שנתמך ב־Active LTS או ב־Maintenance LTS ומתאים לתלויות הפרויקט. מספר גרסה חדש יותר אינו לבדו סיבה לשנות סביבת ייצור. אחרי עדכון בודקים את זרימת הנתונים ואת החיבורים המתמשכים בסביבה המתאימה לפני מעבר מלא.

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

שאלות על Node.js באתר שמתעדכן בזמן אמת

האם Node.js מחליפה את הממשק בדפדפן?

לא. היא יכולה לטפל בשרת ובנתונים בזמן שהדפדפן מציג את הממשק. במסגרת כמו Next.js אפשר לשלב את החלקים בפרויקט אחד ועדיין לשמור על ההפרדה ביניהם. המדריך על מה רץ בשרת ומה רץ בדפדפן ב־Next.js מסביר כיצד נראית החלוקה הזאת.

האם async הופכת חישוב כבד לעבודה מקבילית?

לא. היא מאפשרת לכתוב זרימה אסינכרונית, אך החישוב עצמו אינו עובר אוטומטית לשרשור אחר. אם עיקר הזמן נצרך בחישוב JavaScript, בוחנים פיצול עבודה או Worker Threads. אם מחכים לקלט ופלט, שימוש נכון בממשקים אסינכרוניים יכול להספיק.

האם חייבים WebSocket כדי שהלוח יתעדכן בלי רענון?

לא. גם SSE וגם בקשות תקופתיות יכולות לעדכן את הממשק בלי לטעון מחדש את העמוד. WebSocket מתאים כשיש צורך אמיתי בתקשורת מתמשכת בשני הכיוונים. בכל אפשרות עדיין צריך לתכנן מצב התחלתי וחיבור מחדש כדי שהמידע המוצג יישאר אמין.

מערכת DevSpeed

מערכת DevSpeed עוסקת בפיתוח אתרים, בינה מלאכותית וחוויית משתמש. כאן מתפרסמים מדריכים ודוגמאות מעשיות לעבודה עם טכנולוגיות וכלים.

מדיניות פרטיות

ב- DEVSPEED, הנגיש מ- Devspeed.io, אחד העדיפויות העיקריות שלנו הוא פרטיות המבקרים שלנו. מסמך מדיניות פרטיות זה מכיל סוגים של מידע שנאסף ונרשם על ידי DEVSPEED וכיצד אנו משתמשים בו.

אם יש לך שאלות נוספות או שאתה זקוק למידע נוסף על מדיניות הפרטיות שלנו, אל תהסס לפנות אלינו.

מדיניות פרטיות זו חלה רק על פעילויותינו המקוונות והיא תקפה למבקרים באתר שלנו ביחס למידע ששיתפו ו / או אוספים ב- DEVSPEED. מדיניות זו אינה חלה על כל מידע שנאסף באופן לא מקוון או באמצעות ערוצים שאינם אתר זה.

הסכמה

על ידי שימוש באתר שלנו, אתה מסכים בזאת למדיניות הפרטיות שלנו ומסכים לתנאיו.

מידע שאנו אוספים

המידע האישי שאתה מתבקש למסור והסיבות שבגללן אתה מתבקש למסור אותו, יובהר לך בנקודה בה אנו מבקשים ממך למסור את המידע האישי שלך.

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

כשאתה נרשם לחשבון, אנו עשויים לבקש את פרטי הקשר שלך, כולל פריטים כמו שם, שם חברה, כתובת, כתובת דוא”ל ומספר טלפון.

כיצד אנו משתמשים במידע שלך

אנו משתמשים במידע שאנו אוספים בדרכים שונות, כולל:

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

קבצי יומן

DEVSPEED עוקב אחר נוהל סטנדרטי של שימוש בקבצי יומן. קבצים אלה רושמים מבקרים כאשר הם מבקרים באתרים. כל חברות האירוח עושות זאת וחלק משירותי אירוח ’ ניתוחים.

המידע שנאסף על ידי קבצי יומן כולל פרוטוקול אינטרנט ( IP ) כתובות, סוג דפדפן, ספק שירותי אינטרנט ( ISP ), חותמת תאריך ושעה, הפניה / יציאה של דפים, ואולי גם מספר הקליקים.

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

עוגיות ומשואות רשת

כמו כל אתר אחר, DEVSPEED משתמש בעוגיות ‘ ’. קובצי Cookie אלה משמשים לאחסון מידע כולל העדפות מבקרים ’ והדפים באתר שאליו ניגש האורח או ביקר. המידע משמש למיטוב חוויית המשתמשים ’ על ידי התאמה אישית של תוכן דף האינטרנט שלנו על סמך מבקרים ’ סוג הדפדפן ו / או מידע אחר.

למידע כללי יותר על עוגיות, אנא קרא “ מהן העוגיות ” מהסכמת העוגיות.

מדיניות פרטיות של שותפי פרסום

תוכל להתייעץ ברשימה זו כדי למצוא את מדיניות הפרטיות עבור כל אחד משותפי הפרסום של DEVSPEED.

שרתי מודעות של צד שלישי או רשתות מודעות משתמשים בטכנולוגיות כמו עוגיות, JavaScript או משואות רשת המשמשות בפרסומות ובקישורים שלהם בהתאמה המופיעות ב- DEVSPEED, שנשלחים ישירות לדפדפן ’. הם מקבלים אוטומטית את כתובת ה- IP שלך כשזה קורה. טכנולוגיות אלה משמשות למדידת היעילות של מסעות הפרסום שלהם ו / או להתאמה אישית של תוכן הפרסום שאתה רואה באתרים שאתה מבקר בהם.

שים לב של- DEVSPEED אין גישה או שליטה על קובצי Cookie אלה המשמשים מפרסמים של צד שלישי.

מדיניות פרטיות של צד שלישי

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

אתה יכול לבחור להשבית קובצי cookie באמצעות אפשרויות הדפדפן האישיות שלך. כדי לדעת מידע מפורט יותר על ניהול קובצי cookie עם דפדפני אינטרנט ספציפיים, ניתן למצוא אותו בדפדפנים ’ אתרים בהתאמה.

זכויות פרטיות של CCPA ( אל תמכור את המידע האישי שלי )

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

זכויות הגנת נתונים של GDPR

ברצוננו לוודא שאתה מודע לחלוטין לכל זכויות הגנת המידע שלך. כל משתמש זכאי לדברים הבאים:

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

אם אתה מגיש בקשה, יש לנו חודש להגיב לך. אם ברצונך לממש אחת מהזכויות הללו, אנא צור איתנו קשר.

מידע לילדים

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

תנאי שירות

תנאים והתניות אלה מפרטים את הכללים והתקנות לשימוש באתר DEVSPEED, הממוקם בכתובת Devspeed.io.

על ידי גישה לאתר זה אנו מניחים שאתה מקבל תנאים והתניות אלה. אל תמשיך להשתמש ב- DEVSPEED אם אינך מסכים לקבל את כל התנאים וההתניות המפורטים בדף זה.

המינוח הבא חל על תנאים והגבלות אלה, הצהרת פרטיות והודעת הצהרה וכל ההסכמים: “ לקוח ”, “ אתה ” ו- “ ” מתייחס אליך, האדם נכנס לאתר זה ותואם לתנאי החברה. “ החברה ”, “ עצמנו ”, “ אנו ” “ שלנו ” ו- “ Us ”, מתייחסת לחברה שלנו. “ מפלגה ”, “ צדדים ”, או “ Us ”, מתייחס הן ללקוח והן לעצמנו. כל התנאים מתייחסים להצעה, קבלה ושיקול של תשלום הדרוש לביצוע תהליך הסיוע שלנו ללקוח באופן המתאים ביותר למטרה המפורשת של מענה לצרכי הלקוח בגין מתן השירותים המוצהרים של החברה, בהתאם לחוק ההולנדי ובכפוף לו. כל שימוש במינוח שלעיל או במילים אחרות ביחיד, ברבים, באותיות רישיות ו / או הוא / היא או הם, נלקחים להחלפה ולכן מתייחסים לזה.

עוגיות

אנו משתמשים בעוגיות. על ידי כניסה ל- DEVSPEED, הסכמת להשתמש בעוגיות בהסכם עם מדיניות הפרטיות של DEVSPEED.

רוב האתרים האינטראקטיביים משתמשים בעוגיות כדי לאפשר לנו לאחזר את פרטי המשתמש עבור כל ביקור. העוגיות משמשות את אתר האינטרנט שלנו כדי לאפשר פונקציונליות של אזורים מסוימים כדי להקל על אנשים המבקרים באתר שלנו. חלק מהשותפים השותפים / פרסומות שלנו עשויים להשתמש גם בעוגיות.

רישיון

אחרת צוין, DEVSPEED ו / או מורשי הרישיון שלה הם בעלי זכויות הקניין הרוחני עבור כל החומרים ב- DEVSPEED. כל זכויות הקניין הרוחני שמורות. אתה יכול לגשת לזה מ- DEVSPEED לשימושך האישי בכפוף למגבלות שנקבעו בתנאים והגבלות אלה.

אסור לך:

  • פרסם מחדש חומר מ- DEVSPEED
  • למכור, לשכור או להעניק רישיון משנה מ- DEVSPEED
  • שכפול, שכפול או העתק של חומר מ- DEVSPEED
  • הפץ מחדש תוכן מ- DEVSPEED

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

DEVSPEED שומרת לעצמה את הזכות לפקח על כל התגובות ולהסיר כל הערה שיכולה להיחשב כלא הולמת, פוגעת או גורמת להפרת תנאים והגבלות אלה.

אתה מתחייב ומייצג את זה:

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

אתה מעניק בזאת ל- DEVSPEED רישיון שאינו בלעדי לשימוש, לשכפול, לערוך ולאשר לאחרים להשתמש, לשכפל ולערוך כל אחת מההערות שלך בכל צורות, פורמטים או מדיה.

היפר קישור לתוכן שלנו

ארגונים הבאים רשאים לקשר לאתר שלנו ללא אישור מראש ובכתב:

  • סוכנויות ממשלתיות;
  • מנועי חיפוש;
  • ארגוני חדשות;
  • מפיצי ספריות מקוונים עשויים לקשר לאתר שלנו באותו אופן שהם מקשרים היפר לאתרי האינטרנט של עסקים רשומים אחרים; ו
  • עסקים מוסמכים רחבים במערכת למעט שידול לעמותות, קניונים לצדקה וקבוצות התרמה של צדקה אשר עשויים שלא להקליד לאתר האינטרנט שלנו.

ארגונים אלה עשויים לקשר לדף הבית שלנו, לפרסומים או למידע אחר באתר כל עוד הקישור: ( a ) אינו מטעה בשום דרך; ( b ) אינו מרמז באופן שגוי על חסות, אישור או אישור של הצד המקשר ומוצריו ו / או שירותיו; ו- ( c ) מתאים להקשר של אתר הצד המקשר.

אנו עשויים לשקול ולאשר בקשות קישור אחרות מהסוגים הבאים של ארגונים:

  • מקורות מידע צרכניים ו / או עסקיים ידועים;
  • אתרים קהילתיים;
  • עמותות או קבוצות אחרות המייצגות צדקה;
  • מפיצי ספריות מקוונות;
  • פורטלי אינטרנט;
  • משרדי חשבונאות, משפטים וייעוץ
  • מוסדות חינוך ועמותות סחר.

אנו נאשר בקשות קישור מארגונים אלה אם נחליט כי: ( ) הקישור לא יגרום לנו להראות בצורה לא חיובית לעצמנו או לעסקים המאושרים שלנו; ( b ) לארגון אין רשומות שליליות איתנו; ( c ) התועלת לנו מהנראות של ההיפר-קישור מפצה את היעדר DEVSPEED; ו ( d ) הקישור הוא בהקשר של מידע כללי על משאבים.

ארגונים אלה עשויים לקשר לדף הבית שלנו כל עוד הקישור: ( a ) אינו מטעה בשום דרך; ( b ) אינו מרמז באופן שגוי על חסות, אישור או אישור של הצד המקשר ומוצריו או שירותיו; ו- ( c ) מתאים בהקשר של אתר הצד המקשר.

אם אתה אחד הארגונים המפורטים בפסקה 2 לעיל ומעוניין לקשר לאתר שלנו, עליך ליידע אותנו על ידי שליחת דואר אלקטרוני ל- DEVSPEED. אנא כלול את שמך, שם הארגון שלך, פרטי הקשר וכן את כתובת האתר של האתר שלך, רשימה של כל כתובות האתרים מהן אתה מתכוון לקשר לאתר שלנו, ורשימה של כתובות האתרים באתר שלנו שאליה תרצה לקשר. המתן 2-3 שבועות לתגובה.

ארגונים מאושרים עשויים להקליד לאתר שלנו באופן הבא:

  • באמצעות שם החברה שלנו; או
  • באמצעות איתור המשאבים האחיד המקושר אליו; או
  • על ידי שימוש בכל תיאור אחר של האתר שלנו המקושר לזה הגיוני בהקשר ובפורמט של התוכן באתר הצד המקשר.

לא תותר להשתמש בלוגו DEVSPEED או ביצירות אמנות אחרות לקישור בין הסכם רישיון לסימן מסחרי.

iFrames

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

אחריות לתוכן

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

הפרטיות שלך

אנא קרא את מדיניות הפרטיות

שמירת זכויות

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

הסרת קישורים מאתר האינטרנט שלנו

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

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

הצהרת אחריות

במידה המרבית המותרת על פי החוק החל, אנו מחריגים את כל הייצוגים, האחריות והתנאים הנוגעים לאתר שלנו והשימוש באתר זה. שום דבר בהצהרה זו לא יעשה:

  • להגביל או לשלול את האחריות שלנו או שלך למוות או לפגיעה אישית;
  • להגביל או לשלול את האחריות שלנו להונאה או להצגה שגויה של הונאה;
  • להגביל את התחייבויותינו או אתך בכל דרך שאינה מותרת על פי החוק החל; או
  • לא לכלול התחייבויות שלנו או שלך שלא ניתן להחריג על פי החוק החל.

המגבלות ואיסורי האחריות שנקבעו בסעיף זה ובמקומות אחרים בהצהרה זו: ( a ) כפופים לפסקה הקודמת; ו- ( b ) מסדירים את כל ההתחייבויות הנובעות מההצהרה, לרבות התחייבויות הנובעות בחוזה, בנזיקין והפרת חובה סטטוטורית.

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

מדיניות עוגיות

זוהי מדיניות העוגיות עבור DEVSPEED, הנגישה מ- Devspeed.io

מהן העוגיות

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

אנו נשתף גם כיצד תוכלו למנוע את האחסון של קובצי Cookie אלה, אולם הדבר עלול להוריד או ‘ לשבור ’ אלמנטים מסוימים בפונקציונליות האתרים.

למידע כללי יותר על עוגיות, אנא קרא “ מהן העוגיות ”.

כיצד אנו משתמשים בעוגיות

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

מומלץ להשאיר על כל העוגיות אם אינך בטוח אם אתה זקוק להן או לא במקרה שהן משמשות למתן שירות שאתה משתמש בו.

השבתת עוגיות

אתה יכול למנוע את הגדרת העוגיות על ידי התאמת ההגדרות בדפדפן שלך ( ראה עזרה בדפדפן שלך כיצד לעשות זאת ). שימו לב כי השבתת קובצי Cookie תשפיע על הפונקציונליות של אתרים אלה ואתרים רבים אחרים בהם אתם מבקרים. השבתת קובצי Cookie בדרך כלל תביא גם להשבתת פונקציונליות ותכונות מסוימות באתר זה. לכן מומלץ לא להשבית קובצי cookie.

העוגיות שקבענו

  • טפסים הקשורים לעוגיות כשאתה מגיש נתונים באמצעות טופס כמו אלה שנמצאים בדפי קשר או טפסי תגובה עשויים להיות מוגדרים כדי לזכור את פרטי המשתמש שלך לצורך התכתבויות עתידיות.

עוגיות צד ג ‘

במקרים מיוחדים אנו משתמשים גם בעוגיות המסופקות על ידי צדדים שלישיים מהימנים. החלק הבא מפרט באילו קובצי cookie של צד שלישי אתה עלול להיתקל דרך אתר זה.

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

מידע נוסף

Hopefully, that has clarified things for you and as was previously mentioned if there is something that you aren’t sure whether you need or not it’s usually safer to leave cookies enabled in case it does interact with one of the features you use on our site.

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