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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. #C | עזרה באיתור או יצירת אופרטור ריאקטיבי

#C | עזרה באיתור או יצירת אופרטור ריאקטיבי

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

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

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

    תגובה 1 תגובה אחרונה
    0
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      כתב ב נערך לאחרונה על ידי
      #2

      עם איזה ספריה אתה עובד?
      זה לא בדיוק debounceTime?

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      קומפיונטק 2 תגובות תגובה אחרונה
      2
      • קומפיונטק מחובר
        קומפיונטק מחובר
        קומפיונט
        השיב לdovid ב נערך לאחרונה על ידי
        #3
        פוסט זה נמחק!
        תגובה 1 תגובה אחרונה
        0
        • קומפיונטק מחובר
          קומפיונטק מחובר
          קומפיונט
          השיב לdovid ב נערך לאחרונה על ידי קומפיונט
          #4

          @dovid עכשיו אני רואה ש - debounceTime הוא המקביל של Throttle ב RxJS, אז זה לא עוזר לי.
          גם לפי התרשים כאן זה לא מה שאני מחפש.

          צדיק תמיםצ תגובה 1 תגובה אחרונה
          0
          • צדיק תמיםצ מנותק
            צדיק תמיםצ מנותק
            צדיק תמים
            השיב לקומפיונט ב נערך לאחרונה על ידי צדיק תמים
            #5

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

            Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
            טיפים

            קומפיונטק תגובה 1 תגובה אחרונה
            1
            • קומפיונטק מחובר
              קומפיונטק מחובר
              קומפיונט
              השיב לצדיק תמים ב נערך לאחרונה על ידי קומפיונט
              #6

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

              צדיק תמיםצ תגובה 1 תגובה אחרונה
              2
              • צדיק תמיםצ מנותק
                צדיק תמיםצ מנותק
                צדיק תמים
                השיב לקומפיונט ב נערך לאחרונה על ידי צדיק תמים
                #7

                @קומפיונט עכשיו הבנתי את כוונתך
                אולי תיצור לבד כזה דבר?
                צריך לכאורה פשוט לאחסן את הזמן שבו השינוי טופל, וכל פעם לבדוק האם עבר X זמן מאז, אם כן מעדכנים את הזמן ומטפלים בערך החדש, אם לא מתעלמים
                דוגמה בסיסית בJS:
                https://codepen.io/madrichim/pen/xxBBXqm?editors=1111

                Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
                טיפים

                תגובה 1 תגובה אחרונה
                3
                • dovidD מנותק
                  dovidD מנותק
                  dovid ניהול
                  כתב ב נערך לאחרונה על ידי dovid
                  #8

                  @צדיק-תמים אם כבר ליצור הרחבה לRx, מי שאוהב Rx אמור להזדעזע מקוד שלך 🙂

                  מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                  בכל נושא אפשר ליצור קשר dovid@tchumim.com

                  צדיק תמיםצ תגובה 1 תגובה אחרונה
                  2
                  • צדיק תמיםצ מנותק
                    צדיק תמיםצ מנותק
                    צדיק תמים
                    השיב לdovid ב נערך לאחרונה על ידי צדיק תמים
                    #9

                    @dovid זה רק הרעיון, אולי הייתי צריך לעשות פסאודו קוד ולא דוגמה פועלת...
                    הכותרת היא על C# (שאני לא מכיר בכלל), ולא ברור לי האם בכלל הוא משתמש בRxJS (וגם אותה אני לא מכיר כמעט), ראיתי שאין מישהו שמכיר שעונה, אז זה עדיף מכלום.

                    Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
                    טיפים

                    קומפיונטק תגובה 1 תגובה אחרונה
                    2
                    • קומפיונטק מחובר
                      קומפיונטק מחובר
                      קומפיונט
                      השיב לצדיק תמים ב נערך לאחרונה על ידי
                      #10

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

                      תגובה 1 תגובה אחרונה
                      2
                      • dovidD מנותק
                        dovidD מנותק
                        dovid ניהול
                        כתב ב נערך לאחרונה על ידי
                        #11

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

                        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                        בכל נושא אפשר ליצור קשר dovid@tchumim.com

                        קומפיונטק תגובה 1 תגובה אחרונה
                        2
                        • קומפיונטק מחובר
                          קומפיונטק מחובר
                          קומפיונט
                          השיב לdovid ב נערך לאחרונה על ידי
                          #12

                          @dovid נראה שזה לא פשוט לבנות אופרטורים ב-Rx, זה לדוגמא הקוד של Throttle, אבל כבר לא צריך כי Sample עושה את מה שחיפשתי.

                          תגובה 1 תגובה אחרונה
                          2

                          בא תתחבר לדף היומי!
                          • התחברות

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

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