דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
שלום עולם 0ש

שלום עולם 0

@שלום עולם 0
אודות
פוסטים
83
נושאים
20
קבוצות
0
עוקבים
1
עוקב אחרי
2

פוסטים

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

  • תגובות ל"צלילה לעומק TypeScript"
    שלום עולם 0ש שלום עולם 0

    @yossiz כתב בצלילה לעומק TS: טייפ X לא זהה ל-union של כל הערכים האפשריים שהטייפ כולל:

    { foo: string; bar number }

    חסר נקודתיים.


  • איך לאתר color theme מסוים לVSC
    שלום עולם 0ש שלום עולם 0

    בדיוק יצא לי להשתמש באתר codepen.io לצורך שיתוף קוד כאן בפורום, ואני רואה שהאתר מציג את הjs עם צבעים שממש חיבבתי:
    8930c599-30d3-4d82-ad50-40fa9d9015cf-image.png
    מישהו מכיר ערכה מקבילה להתקנה ב-VSC? (זה שונה מכל ערכות ברירת המחדל שם).


  • אי דיוק של MouseEvent על קנבס
    שלום עולם 0ש שלום עולם 0

    @OdedDvir כתב באי דיוק של MouseEvent על קנבס:

    לא הצלחתי לשחזר את הבאג

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


  • אי דיוק של MouseEvent על קנבס
    שלום עולם 0ש שלום עולם 0

    @WWW כתב באי דיוק של MouseEvent על קנבס:

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

    תן לי להבין בדיוק: זה עובד נכון רק בהזזה אחורה אבל לא בהזזה קדימה?


  • אי דיוק של MouseEvent על קנבס
    שלום עולם 0ש שלום עולם 0

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

    יצרתי שעון מחוגים באמצעות JS ואלמנט קנבס. הוספתי אפשרות לכוון את השעון לשעה מותאמת-אישית על ידי גרירת המחוגים ידנית (שו' 306 והלאה).

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

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

    כדי לפתור את זה הוספתי עוד בדיקה: מוצאים את המיקום הקודם של הסמן, ואם המיקום הקודם הוא לפני הספרה 12 (=מרכז השעון), והמיקום הנוכחי הוא אחרי – צריך להוסיף שעה. המיקום הקודם מחושב ע"י event.clientX-event.movementX.

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

    אני לא מצליח למצוא את הבעיה. לכאורה החישובים והתנאים הם ללא רבב ואמורים לעבוד.

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

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


  • מחלקה פשוטה ב-JS לטפל בחוסר הודאות בקיום localstorage
    שלום עולם 0ש שלום עולם 0

    @צדיק-תמים אני התכוונתי לכיוון ההפוך – חילוץ ההגדרות מ-localStorage, אבל אתה צודק שאם השמירה נעשתה עם key מיוחד אין בעיה.


  • תגובה: טייפסקריפט - טייפ מותנה
    שלום עולם 0ש שלום עולם 0

    תגובה: טייפסקריפט - טייפ מותנה

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


  • מחלקה פשוטה ב-JS לטפל בחוסר הודאות בקיום localstorage
    שלום עולם 0ש שלום עולם 0

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


  • מחלקה פשוטה ב-JS לטפל בחוסר הודאות בקיום localstorage
    שלום עולם 0ש שלום עולם 0

    @yossiz המחקלה מאפשרת רק תקשורת בסיסית עם localstorage דהיינו get, set, remove. אבל ל-localstorage יש גם מתודת ()clear ומאפיין length; אפשר לגשת ולשנות את רכיביו עם [localStorage[key או Object.hasOwnPropetry, אפשר לבצע עליו איטרציות(!) וכו'.

    אם אתה רוצה לחקות באמת את localstorage, כנראה הפתרון הוא Proxy שלם שיושב על כל אפשרויות התקשורת עם localstorage ומספק תחליפים על בסיס coockie. ייתכן שעבור עבור חלק מהמקרים יהיה אפשר לרכב על ה-API הקיים sessionStorage אם הדפדפן מספק אותו.

    כל זה לענ"ד וכתלמיד הדן בקרקע...


    נ.ב. ייתכן שהיישום של ()localStorage.clear על המחלקה שלך מסוכן כי הוא עולל למחוק שורות מה-coockie שמנוהלים ע"י קוד אחר. לפתור את זה ידרוש מעקב על מה נוסף על ידי הקוד הנוכחי ומה לא.


  • התקנת Liver Server++
    שלום עולם 0ש שלום עולם 0

    @yossiz בד"כ איפה שיש לי אינטרנט אין לי VSC, ולהיפך. האם יש דרך להוריד קובץ שבאמצעותו אוכל להתקין את התוסף אופליין?


  • התקנת Liver Server++
    שלום עולם 0ש שלום עולם 0

    איך מתקינים את Liver Server++ (=גרסת הבטא)?


  • interval של JS מתעצל במלאכתו
    שלום עולם 0ש שלום עולם 0

    @yossiz כתב בinterval של JS מתעצל במלאכתו:

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

    כבר רשמתי את הדף ברשימת הדפים שאין להשביתם, והבעיה נשארה עד שעשיתי כנ"ל.


  • interval של JS מתעצל במלאכתו
    שלום עולם 0ש שלום עולם 0

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


  • interval של JS מתעצל במלאכתו
    שלום עולם 0ש שלום עולם 0

    ראיתי שהשאלה נשאלה ב-stack overflow אך אין שם תשובה משכנעת. לפי המוסבר שם, שום שעון js לא אמור לעבוד.


  • interval של JS מתעצל במלאכתו
    שלום עולם 0ש שלום עולם 0

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

    מתברר שאחרי 75 שניות פעילות, ה-interval מתחיל להאט את פעילותו ולפעום אחת לשתי שניות, שלוש, עשר, והלאה.

    מצורף הקוד המלא, העיקר בשורות 20 ומטה, ו-37 ומאה.

           let timeElement = document.querySelector('#time'),
                fractionalHoursElement = document.querySelector('#fractional-hours'),
                hoursInputElement = document.querySelector('#hours-input'),
                minutesInputElement = document.querySelector('#minutes-input'),
                runButton = document.querySelector('#run'),
                stopButton = document.querySelector('#stop'),
                clearButton = document.querySelector('#clear'),
                setTimeButton = document.querySelector('#set-time'),
                hoursIncrementButton = document.querySelector('#hours-increment'),
                hoursDecrementButton = document.querySelector('#hours-decrement'),
                minutesIncrementButton = document.querySelector('#minutes-increment'),
                minutesDecrementButton = document.querySelector('#minutes-decrement'),
                myTimerInterval,
                timer = Number(localStorage.timer) || 0,
                isRunning = false;
    
            function start() {
                if (isRunning) return;
                isRunning = true;
                myTimerInterval = setInterval(() => {
                    timer++;
                    updateStorage(timer);
                    updateDisplay();
                }, 1000);
            }
    
            function updateStorage(t) {
                localStorage.timer = t;
            }
    
            function updateDisplay() {
                let hours = Math.floor(timer / 3600);
                let minutes = Math.floor((timer % 3600) / 60);
                let seconds = timer % 60;
                let fractionalHours = (timer / 3600).toFixed(2);
    
                updateTimer(hours, minutes, seconds);
                updateFractionalHours(fractionalHours);
    	    if (seconds === 0) {
    	    hoursInputElement.value = hours;
                minutesInputElement.value = minutes;
    		}
            }
    
            function updateTimer(h, m, s) {
                let hoursStr, minutesStr, secondsStr;
    
                if (h < 100) {
                    hoursStr = h.toString().padStart(2, '0') + ":";
                } else {
                    hoursStr = h.toString() + ":";
                }
    
                minutesStr = m.toString().padStart(2, '0') + ":";
                secondsStr = s.toString().padStart(2, '0');
    
                timeElement.innerText = hoursStr + minutesStr + secondsStr;
            }
    
            function updateFractionalHours(fh) {
                fractionalHoursElement.innerText = `${fh} שעות`;
            }
    
            function stop() {
                if (!isRunning) return;
                clearInterval(myTimerInterval);
                isRunning = false;
            }
    
            function clearTimer() {
                if (timer === 0) return;
                if (confirm("ביקשת לאפס את הטיימר. האם אתה בטוח?")) {
                    stop();
                    timer = 0;
                    updateStorage(timer);
                    updateDisplay();
                }
            }
    
            function setTime() {
                let hours = parseInt(hoursInputElement.value, 10) || 0;
                let minutes = parseInt(minutesInputElement.value, 10) || 0;
    
                if (isNaN(hours) || isNaN(minutes) || hours < 0 || minutes < 0 || minutes >= 60) {
                    alert("אנא הזן זמן תקין");
                    return;
                }
    
                timer = (hours * 3600) + (minutes * 60);
                updateStorage(timer);
                updateDisplay();
            }
    
            function incrementHours() {
                let hours = parseInt(hoursInputElement.value, 10) || 0;
                hoursInputElement.value = hours + 1;
            }
    
            function decrementHours() {
                let hours = parseInt(hoursInputElement.value, 10) || 0;
                if (hours > 0) {
                    hoursInputElement.value = hours - 1;
                }
            }
    
            function incrementMinutes() {
                let minutes = parseInt(minutesInputElement.value, 10) || 0;
                if (minutes < 59) {
                    minutesInputElement.value = minutes + 1;
                }
            }
    
            function decrementMinutes() {
                let minutes = parseInt(minutesInputElement.value, 10) || 0;
                if (minutes > 0) {
                    minutesInputElement.value = minutes - 1;
                }
            }
    
            document.addEventListener('DOMContentLoaded', start);
    
            runButton.addEventListener('click', start);
            stopButton.addEventListener('click', stop);
            clearButton.addEventListener('click', clearTimer);
            setTimeButton.addEventListener('click', setTime);
            hoursIncrementButton.addEventListener('click', incrementHours);
            hoursDecrementButton.addEventListener('click', decrementHours);
            minutesIncrementButton.addEventListener('click', incrementMinutes);
            minutesDecrementButton.addEventListener('click', decrementMinutes);
    

  • צאט AI | מודל שפה!
    שלום עולם 0ש שלום עולם 0

    @NH-LOCAL כתב בצאט AI | מודל שפה!:

    openai שחררה מודל שפה גדול חדש, שמיועד לפתרון בעיות מתמטיות.

    שחררה ממש?
    אפשר קישור או שלא דק?


  • אירוח שרת node.js בחינם
    שלום עולם 0ש שלום עולם 0

    @חגי כתב באירוח שרת node.js בחינם:

    @שלום-עולם-0 כן.

    אני לא מצליח לקבל מהאתר את התגובה שאני אמור לקבל לפי הבנתי.

    זה אמור לעבוד עם משלוח AJAX מהקונסולה שלי – אני אמור לקבל תגובה "hello world"?

    @חגי כתב באירוח שרת node.js בחינם:

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

    באמת תודה על ההשקעה, אבל אני לא צריך משהו יותר רציני.


  • אירוח שרת node.js בחינם
    שלום עולם 0ש שלום עולם 0

    @חגי אם כתוב שם קוד כזה:

    Deno.serve((Request) => new Response("Hello World"));
    

    המשמעות היא שכל קריאה שתישלח לכתובת של אתר התוצאה, תיענה ב-"hello world?"


  • אירוח שרת node.js בחינם
    שלום עולם 0ש שלום עולם 0

    @חגי קוד שאכתוב ב-playground יהיה גלוי לכל העולם?

    א"כ יצא שכרי בהפסדי.


  • אירוח שרת node.js בחינם
    שלום עולם 0ש שלום עולם 0

    @חגי כתב באירוח שרת node.js ב-firebase:

    @שלום-עולם-0 השורת פקודה נמצאת במחשב שלך, אם אתה בווינדוס, אז אתה יכול לבחור בין cmd.exe לבין ps.exe

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

  • 1 / 1
  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.
  • פוסט ראשון
    פוסט אחרון
0
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום