@dovid אמר בJS: Uncaught (in promise) - מתי קורה?:
אתה יכול לראות בקונסול שהלחיצה על הכפתור יש לה בחינה של חזרה בתשובה...
בפיירפוקס השגיאה לא נמחקת, רק ידו של כרום פתוחה לקבל שבים...
@dovid אמר בJS: Uncaught (in promise) - מתי קורה?:
אתה יכול לראות בקונסול שהלחיצה על הכפתור יש לה בחינה של חזרה בתשובה...
בפיירפוקס השגיאה לא נמחקת, רק ידו של כרום פתוחה לקבל שבים...
@yossiz אתה מדבר על גישה מעניינת שלא שמעתי עליה, ממתי מנהלים הרשאות דרך הדאטבייס? תמיד ידעתי שניהול ההרשאות מסור בידי השרת, מה גורם לך לנטות מהדרך הבטוחה הזו?
עריכה
אני מבין שמפריע לך שאתה כותב הרבה קוד, אם ככה לא מכיר פיתרון, רק ליצור כלים יותר גנריים שיבנו את השאילתות (מורכב), או לפצל את ה API לפי רמות הרשאה ולעצור את הבקשה בטרם תגיע לשאילתה (תוספת קוד) או לשלב את שני הדרכים
אבל קשה לי להאמין שאפשר לנהל רמות הרשאה דרך המסד נתונים, לא נראה לי שהוא בנוי לדברים כאלה, בגלל שאין לו דרך לדעת מי מבקש את השאילתה, מבחינתו המתשאל הוא היוזר שהתחבר למסד, מאיפה הוא יכול לדעת מי הסשן שביקש את השאילתה?
@yossiz אין לי פיתרון, רק איזה זכרון עמום שיש הבדל בין מערכות של 32 ל 64, בלי אחריות
אבל יש תוכנה שנקראת ארון ספרים דיגיטלי, שמותאמת במיוחד להיברו בוקס, יותר מהירה בשליפת ספרים וממשק יותר נח. סתם ככה אני חושב שהיא הרבה יותר נוחה מהדפדפן שלהם, וגם אתה ניצול מכל הבאגים האלה.
לא יודע אם היא משווקת היום, יש לי גירסת ניסיון שלה שהמפתח חילק בחינם, שעובדת רגיל לגמרי חוץ מאיזה באג שלפעמים היא נסגרת אחרי כמה ספרים שאתה פותח (אפשר ללמוד איך להתגבר על זה)
https://send.magicode.me/send-file/file/b4048f4a2f7000dd916af8c649c004f953cfe17b/view
@yossiz אמר במי עוד משתגע מהתנהגות כרום לגבי טקסט bidi?:
@yossiz אמר במי עוד משתגע מהתנהגות כרום לגבי טקסט bidi?:
@יוסף-בן-שמעון אני נתקל כל הזמן בבעיות, עכשיו לקחתי לדוגמא את הראשון שמצאתי. ולזה באמת הסימניה שלך עובד. (מזל טוב זכית בפרס היוקרתי...).
איך אפשר להעביר לך את פרטי החשבון בנק שלי?
ב. מסקרן אותי אם יש מקומות שבהם לא יעזור.
אני משתמש בזה המון זמן ולא נתקלתי בבעיות
@dovid אתה ניגש לבעיה בראש של מתכנת, אבל לענ"ד כדאי ש @מעלה-ומוריד יכיר את העוצמה של המאקרו בלי לדעת מילה ב VBA
השלבים שאני הייתי עושה בלי להיות מתכנת VBA הם כך:
וזו התוצאה
Sub הדבק_עם_מרכאות()
Selection.TypeText Text:=""""
Selection.Paste
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = " ("
.Forward = False
.Wrap = wdFindAsk
End With
Selection.Find.Execute
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.TypeText Text:=""""
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ")"
.Forward = True
.Wrap = wdFindAsk
End With
Selection.Find.Execute
Selection.MoveRight Unit:=wdCharacter, Count:=1
End Sub
@ZACK אמר במחפש מעצב אתר - צד לקוח:
מדובר בפרויקט בטווח שבין 20 - 50 שעות. את הפרויקט ברמת השרת יש מתכנת אחר שעושה.
אתה יכול לנסות לפנות ל @GolanArt מנהל הפורום של מקצועות, הוא מעצב מוכשר מאד, הוא עיצב בעצמו את הפורום שלו, אתה יכול להתרשם מהרמה של העבודות שלו בעצמך
https://מקצועות.com/topic/295/golanart/3
תנסה להוסיף בסוף הקישור:
&order=date
להיות בטוח שזה לפי תאריך פרסום
http://forum.netfree.link/topic/368/תוסף-לכרום-בודק-קישורי-יוטיוב-בחיפוש-גוגל/32
דוגמא חיה להקפצה של אשכול עתיק שכבר מזמן לא רלוונטי, צריך לקרוא אותו מהתחלה ולהגיע לסוף כדי לראות את הסליחה על ההקפצה, ובנתיים להכיר את המצב של נטפרי לפני כמה שנים
@אביי א. השגיאה אומרת שהקובץ לא קיים, זה סתם קובץ שדוד כתב בשביל הדוגמא, תחליף את השם של הקובץ בשם האמיתי של האקסס שאתה רוצה לפתוח
ב. במילה VAR אתה מצהיר על משתנה, האם אתה מכיר את המושג משתנה?
ג. אחרי הסוגריים המסולסלות שסוגרות את ה IF, אתה מוסיף:
else
{
MessageBox.Show("אין לך הרשאת גישה");
}
@nigun הקוד שהבאתי הוא בסיס מופשט להבנת הענין
package main
import (
"fmt"
"time"
)
var (
// הערוץ הראשי שאליו מוזרם המידע
mainChan = make(chan string)
// מערך של ערוצי משנה
// כל פונקציה שתרצה לקבל מידע מהערוץ הראשי תצטרך ליצור ערוץ משנה ולהוסיף אותו למערך הזה
channels = []chan string{}
)
func main() {
go func() {
// פונקציה היחידה שמקבל את המידע מהערוץ הראשי ומזרימה אותו לערוצי המשנה
msg := <-mainChan
for _, c := range channels {
c <- msg
}
}()
go func(c chan string) {
time.Sleep(2 * time.Second)
c <- "foo"
}(mainChan)
go someThread()
go someThread()
go someThread()
go someThread()
time.Sleep(4 * time.Second)
}
func someThread() {
c := addListener()
s := <-c
fmt.Println(s)
}
func addListener() chan string {
// הפונקציה שתפקידה ליצור את ערוצי המשנה ולהוסיף אותם למערך כדי להאזין למידע מהערוץ הראשי
newChan := make(chan string)
channels = append(channels, newChan)
return newChan
}
זה עובד טוב בשביל פונקציות חד פעמיות, אם תרצה להפוך את זה למאזינים רב פעמיים, לא צריך לעשות הרבה, רק להוסיף לולאות אינסופיות שמאזינות למידע מהערוץ, כך שברגע שיתקבל מידע מהערוץ הפונקציה תעשה את המוטל עליה ומיד אחר כך תמשיך לאיטרציה הבאה בלולאה ששוב מאזינה לערוץ:
package main
import (
"fmt"
"time"
)
var (
mainChan = make(chan string)
channels = []chan string{}
)
func main() {
go func() {
for { // << לולאה אינסופית שמאזינה לערוץ הראשי
msg := <-mainChan
for _, c := range channels {
c <- msg
}
}
}()
go func(c chan string) {
time.Sleep(1 * time.Second)
c <- "foo"
time.Sleep(1 * time.Second)
c <- "foo" // << שליחת מידע לערוץ הראשי פעם נוספת
}(mainChan)
go someThread()
go someThread()
go someThread()
go someThread()
time.Sleep(4 * time.Second)
}
func someThread() {
c := addListener()
for { // << לולאה אינסופית שמאזינה לערוץ המשנה
s := <-c
fmt.Println(s)
}
}
func addListener() chan string {
newChan := make(chan string)
channels = append(channels, newChan)
return newChan
}
עד כאן הכל פשוט, הבעיה מתחילה בסיטואציה של השואל בסטאק, שיתכנו מאזינים שנרשמו לערוצי המשנה, ובהמשך הם יתנתקו וירדו מההאזנה, הבעיה היא שכל מאזין מריץ לולאה אינסופית, ואם לא תעצור את הלולאה כשהוא יתנתק זה יגרום לשימוש מיותר בזיכרון. בשביל זה הוא צריך להוסיף לכל מאזין גם תנאי עצירה, ולכן הוא הוסיף את הערוץ quit, וזה סיבך את הקוד.
האם אתה גם צריך את זה? זה תלוי באופי השימוש של המאזינים שאתה מקים, אם הם אמורים לרוץ כל חיי האפליקציה, אז זה מיותר, אם יש סיכוי שחלק מהם או כולם יגמרו את התפקיד שלהם וימותו, אז תצטרך לדאוג לעצירת הלולאה.
גם למקרה שצריך לעצור את הלולאה, אם המקרה של סיום התפקיד של הפונקציה ידוע וצפוי מראש, לא תצטרך להשתמש בשיטה של הערוץ quit, אלא פשוט תעצור את הלולאה בעצמך, אם זה לא תלוי בידך אלא זה מקרה לא צפוי (כמו במקרה של השואל שם שמשתמש יתנתק) לזה נועד השימוש בערוץ וב select
בעיה נוספת שהעלו שם, אם המאזינים נרשמים ומתווספים למערך בו בזמן שהערוץ בפעולה, והפתרון שהוא הציע זה לנעול את הערוץ עם sync.Mutex
בזמן שמוסיפים מאזין ולשחרר אותו אחר כך, אבל לא הצלחתי להבין מה בדיוק יגרום לבעיה ולמה צריך את הפיתרון.
@avr416 דברים כדורבנות, אבל המציאות לא תמיד מסכימה עם הפילוסופיה הזו, על עצמי אני יודע שאם הייתי מנסה לעבוד כך הייתי היום תקוע איפשהו בהבנת המושג מערך, דוקא כשנתקלתי בבאגים שאתה מתאר הוכרחתי להבין את הדברים יותר לעומק, ועד היום אני מבין יותר דברים בזכות באגים
אתה רוצה לאפשר למשתמש לסנן לפי שם או כתובת וכו'?
https://jsfiddle.net/oh67frLy/
@ש-ב-ח מה המטרה שלך, אם אתה רוצה לקבל מונה צפיות ריאלי ולכן אתה לא רוצה למנות כניסות אחרות, עדיף שתעשה לכל מייל מזהה ייחודי, ותשתול את המזהה בכתובת של הקובץ PHP
domain.com/file.php?token=abcdefg
וכשהוא יכנס לדף תרשום את הכניסה לפי המזהה, כך אם הוא כבר נכנס פעם אחת זה נרשם על המזהה שלו, והכניסה הבאה כבר לא תרשם.
חוץ מזה שכך תרוויח גם לדעת מי בדיוק נכנס.
מחכים להמשך ...
@שואף למה לא להחזיק בזיכרון? יש לך איזו מגבלה על הזיכרון?
בכל מקרה נראה לי שהאפשרות של טבלה מאונדקסת היא המהירה ביותר, כי גם ככה אתה רוצה לגשת לדיסק אז במקום שתטען קובץ ותחפש בכולו תן למסד נתונים למטב את זה עם אינדקס
@dovid אמר בהאם זה מעניין כאן מישהו מדריך על בניית אתרים סטטיים?:
@nach אמר בהאם זה מעניין כאן מישהו מדריך על בניית אתרים סטטיים?:
תרצה שאפציץ אתכם בשאלות?
כן בכל ליבי!!
אחח.. איפה עוד יש אנשים כאלה?
@chagold או בקיצור
alert = console.error
אולי תדרוס את הפונקציה אלרט
alert = null