@dovid רק לי הקישור פותח כזה דף וזהו?

צדיק תמים
-
הוספת לינק לניווט -
דיבוג אובייקטים נוח בNode.jsהתחלתי בשעה טובה לעבוד על פרויקט הנוד הראשון שלי (פרטים נוספים אולי בהמשך...
), ומייד נתקלתי בבעיה - איך לצפות באובייקטים בצורה נוחה? בדפדפן כאשר מדפיסים אובייקט הדפדפן מכווץ אותו ומאפשר לצפות בתצוגת עץ מקוננת:
אבל בנוד ההדפסה היא לשורת הפקודה שברגיל לא תומכת אפילו בעברית מימין לשמאל והופכת הכל, וגם עם PowerShell התצוגה לא נוחה, כיוון שחסר התצוגה המכווצת שיש בדפדפן.
מה שעשיתי כרגע זה להכניס את הלוג לקובץ טקסט באמצעות מודל fs (וכמובן המרה לסטרינג ע"י JSON.stringify), ואז אני פותח את הקובץ טקסט, מעתיק את תוכנו לקונסולה של הדפדפן, וככה אני יכול לראות אותו בצורה הנוחה.
השאלה מה הדרך הנוחה והישרה לעשות כזה דבר, בלי קומבינות מעצבנות כאלה?
תודה רבה -
שליחת מייל בנוד (עם ספריית nodemailer) לעותק מוסתר - ושיוצג למקבל שמו בנמעניםשלום וברכה.
אני מנסה לשלוח מיילים דרך ספריית nodemailer עם חשבון גוגל (עשיתי אימות דו שלבי ו"סיסמה לאפליקציה"). אני צריך לשלוח את המיילים לרשימה של כתובות בעותק מוסתר אחת מהשניה.
עשיתי כזה דבר:const mailOptions = { from: 'pushing.rss@gmail.com', bcc: ['address2@gmail.com', 'address1@gmail.com'], subject: 'Sending Email using Node.js', text: 'בדיקת שליחת מייל דרך nodeJS' };
והמייל נשלח לכתובות, אבל בעוד בחשבון השולח (ב"נשלח") מופיעות הכתובות שאליהן זה נשלח באופן תקין:
במייל המקבל המייל נראה שונה מהרגיל - בשליחה רגילה של מייל בעותק מוסתר, מוצג למקבל כתובת המייל שלו בשדה "עותק מוסתר":
במיילים שנשלחו דרך nodemailer, מוצג דבר כזה:
אשמח אם מישהו מכיר את הספריה ונתקל אולי בתופעה, וידע להסביר/למצוא פתרון... תודה! -
הסרת מאזין לאלמנט (mouseenter) - מציאת הhandleEvent@davidnead אמר בהסרת מאזין לאלמנט (mouseenter) - מציאת הhandleEvent:
- ניסית לקרוא ל
element
בלי שהוא קיים בתוך הפונקציה שלך.
הוא מוגדר בסקופ האב, ואמור להיות חשוף לפונקציה...
למעשהstopImmediatePropagation()
לא עוצר את המאזין המובנה (של ג'ימייל). אני חושד שהסיבה היא בגלל שהוא מוגדר לפני המאזין "שלי" (שאני הוספתי). - ניסית לקרוא ל
-
אלמנט שלא ניתן לגישה בJS - עד ללכידה דרך כלי המפתחים -
אלמנט שלא ניתן לגישה בJS - עד ללכידה דרך כלי המפתחיםישנה קבוצת צ'אט (Hangout) שאני מעוניין מסיבות מסוימות להסתיר אותה מהתפריט, אבל לא לצאת ממנה. העברה לארכיון (לאחר השתקה) לא עוזרת, כי ברגע שמתקבלת הודעה חדשה השיחה קופצת חזרה החוצה.
כתבתי את הקוד JS הבא (מיועד עבור התצוגה הישנה עם Hangout, לא עם גוגל צ'אט):const chats = document.querySelectorAll(".lt") for (let i = 0; i < chats.length; i++) { const label = chats[i].ariaLabel; if (/שיחה עם XYZ/.test(label)) { console.log("removed!") chats[i].parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.remove() } }
אלא שגם לאחר שהמייל נטען לחלוטין, הסלקטור לא מניב שום תוצאות...
אבל ברגע שאני לוחץ על בורר האלמנטים בכלי המפתחים () ו"תופס" את האלמנט הזה, פתאום הסלקטור עובד!
וגם הקוד שלעיל עובד, ומסיר מיידית את השיחה ששמה "XYZ" (שם בדוי כמובן...)
אשמח לעזרה! -
מהירות הרצת קוד ב-JS [כרום], או "למה המהירות לא קבועה?"@dovid האתרים האלה לא ממש אמינים... השוותי את הקוד מול עצמו (כלומר הכנסתי בשני המקרים את אותו קוד), ויצא פער...
התמונה מ https://jsbench.me, וכנ"ל גם ב https://jsben.ch -
הסרת מאזין לאלמנט (mouseenter) - מציאת הhandleEvent@מוטי-אורן אני לא צריך לעצור את ההתפשטות של האירוע הזה אלא לעצור אירועים אחרים...
It also does not prevent immediate propagation to other event-handlers. If you want to stop those, see
.stopImmediatePropagation()
ולמעשה גם עם
stopImmediatePropagation
:const element = document.querySelector('[class="V6 CL V2"]') element.addEventListener("mouseenter", stopEvents); function stopEvents() { element.stopImmediatePropagation() }
זה לא עובד...
כמו כן, יש כאן את הנקודה של התועלת ארוכת טווח - זה עוזר למקרה הזה ספציפית, אבל במקרה שאני ארצה להסיר רק מאזין אחד מתוך כמה, אני לא אוכל להשתמש בדבר כזה... וחוזרת השאלה שלמעלה, איך אני מוצא את הlinster -
הסרת מאזין לאלמנט (mouseenter) - מציאת הhandleEventאני מעוניין להסיר את האזנה לאירוע שמתבצע בכניסת אל אלמנט מסוים (mouseenter).
רקע: בעיצוב החדש של ג'ימייל, יש בצד ימין 3 כפתורים:
בריחוף על 2 המצבים האחרים - הלא פעילים כרגע (כלומר אם נמצאים לדוגמה ב"צ'אט", אז בריחוף על "מייל" או על "מרחבים משותפים"), קופץ מעין פופ-אפ:
שאותו אני מעוניין להסיר. (ניסיתי להסיר אותו באמצעות()remove.
אוdisplay: none
ב-CSS, אבל הצלחתי רק לרוקן אותו מתוכן, ולא להעלים אותו...)
מצאתי בכלי המפתחים את האירוע mouseenter הבא (היה עוד אחד, שההסרה שלו לא השפיעה):
שאם אני לוחץ על הכפתור של remove - הפופאפ באמת לא מופיע. אבל אני צריך לעשות את זה בJS, לא ידני דרך הקונסול כל פעם מחדש...
ב-MDN מופיע שצריך להעביר ל-removeEventListener
כארגומנט שני את הlinster (מאזין). ממה שהבנתי, הכוונה לפונקציה שמתבצעת כשהאירוע מתבצע. השאלה איך אני מוצא את השם של הפונקציה הזו?
זה הקוד כרגע:document.querySelector('[class="V6 CL V2"]').removeEventListener("mouseenter", handleMouseDown, false);
לכידת האלמנט, והסרת המאזין. ארגומנט ראשון שמועבר למסיר זה סוג האירוע (mouseenter), והאחרון זה false ל-
useCapture
, כפי שמופיע בכלי המפתחים:
השאלה איך אני מקבל את שם הפונקציה? מה שצריך לבוא במקוםhandleMouseDown
...
תודה רבה!! -
מהירות הרצת קוד ב-JS [כרום], או "למה המהירות לא קבועה?"@dovid זה אומר שבעצם אין דרך למדוד באיזה צורה הקוד יותר יעיל, אלא אם כן זה הפרש ממש משמעותי מעבר לטווח הסטיות שציינת כמו חומרה תהליכים ברקע וכו'?
-
מהירות הרצת קוד ב-JS [כרום], או "למה המהירות לא קבועה?"@גמליאל אמר במהירות הרצת קוד ב-JS [כרום], או "למה המהירות לא קבועה?":
כי לסוף השניה הנוכחית נשאר תמיד פחות משניה
יותר מדוייק: לסוף האלפית שניה הנוכחית נשאר פחות מאלפית...
-
מהירות הרצת קוד ב-JS [כרום], או "למה המהירות לא קבועה?"הלולאה הפשוטה הבאה:
for (let i = 0; i < 500; i++) { console.log(Date.now()) }
מדפיסה בעצם שוב ושוב, 500 פעמים, בקצב המקסימלי שהמנוע שמריץ (במקרה הזה - V8 - כרום) מסוגל, את מספר אלפיות השניה שחלפו מאז
1 בינואר 1970 00:00:00 UTC
.
ואכן כשאני מריץ את זה בקונסול, אני רואה שבכל אלפית שניה המנוע מספיק להריץ את זה כמה פעמים.
מה שמוזר זה, שאין במספר הפעמים שום עקביות (חוץ מזה שבאלפית הראשונה הוא מריץ תמיד הכי קצת פעמים)...
וזה לא רק בהרצה ידנית, אלא גם בהרצה בלופ של הלופ:for (let index = 0; index < 4; index++) { for (let i = 0; i < 500; i++) { console.log(Date.now()) } }
גם כן כל פעם זה מספיק מספר שונה...
הייתי שמח להבין מה הפשט
נ.ב. הרי המנוע "מתרגם" קוד חזרתי בצורה שונה... גם זה לכאורה נכנס פה למשוואה... השאלה איך... -
איזה איכות הזרמת וידאו כרום תומך?@אביי מעניין... כי בסרטון
כתוב בתיאור שצריך דווקא כרום כדי לצפות בK8.... -
v-if, v-else-if, v-else ב-Vue (3)טוב, אז אחרי כל הדיבורים וההצהרות
, התחלתי Vue 3. [למה 3? כי מצאתי לזה קורס טוב
]
אני לא מכיר את 2, וממילא אני לא יוכל לדעת בכל שאלה האם היא נוגעת רק ל3 או גם ל2...
ב-
v-if
,v-else-if
,v-else
;
מה התפקיד שלv-else-if
? המקבילה לכאורה בJS נייטיב זה:const a = 111; if (a < 1) { console.log("1<<"); } else if (a > 2 && a < 100) { console.log("10>>"); } else { console.log("hover!"); }
אבל מה זה שייך פה, שזה נקבע לפי המידע שמוגדר בדאטה של האובייקט של Vue? ולא לפי תנאים שמוכנסים אליו ושם החישוב. החישוב אמור להתבצע באובייקט של הVue...
-
לימוד שפה נוספת מעבר לJS - נצרך?@davidnead אמר בלימוד שפה נוספת מעבר לJS - נצרך?:
- שאלה: אז מה בעצם הספק שלך כרגע?
מה שכתבתי הוא בהנחה שאני נשאר להתמקד אך ורק בJS, ועל זה בדיוק היתה שאלתי - האם זה נכון להתמקד רק בשפה הזו.
-
לימוד שפה נוספת מעבר לJS - נצרך?@davidnead למעשה כמו ש @dovid כתב כבר היה דיון ארוך על הפרימוורקים, וזה ישמש אותי בעז"ה בעתיד. כרגע החלטתי שאני רוצה ללמוד לפי הסדר הבא: צד לקוח בסיסי (שזה פחות או יותר החלטתי שסיימתי), צד שרת בסיסי, אולי גם קצת טייפסקריפט, ואז ככה"נ פרימוורק. הצד לקוח ושרת היותר מתקדמים, נראה לי נרכשים יותר עם הזמן הנסיון והאתגרים הספציפיים, ואולי בהמשך אשקול מסלול מחדש...
זה הכיוון כרגע.
-
תוסף Cleaner And Helper -
לימוד שפה נוספת מעבר לJS - נצרך?שפת התכנות הכי מבוקשת בישראל היא דווקא Python, אחריה JAVA, במקום השלישי ++C, במקום הרביעי Node.js
(מתוך הקישור שהבאת)
-
לימוד שפה נוספת מעבר לJS - נצרך?@yossiz אני חושש שלא הבנת אותי... לא התכוונתי ב"לא בניית אתרים" שאני מחפש בינה מלאכותית וכדומה... אלא למעט דברים כמו בניית אתרי וורדפרס לעסקים, וכדומה
אלא בק אנד, ו/או צד קליינט מתוחכם -
לימוד שפה נוספת מעבר לJS - נצרך?@yossiz אמר בלימוד שפה נוספת מעבר לJS - נצרך?:
אני חושב שזה לגמרי לא נכון. אני חושב שאין שפה יותר מבוקשת מ-JS.
לבניית אתרים או לדברים יותר רציניים/יותר "תכנותיים"?