Popup message box εκεί που δεν περιμένω κάτι

Γενικά θέματα για τις γλώσσες προγραμματισμού που δεν καλύπτονται από τις άλλες περιοχές της κατηγορίας.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
txc
Δημοσιεύσεις: 627
Εγγραφή: 02 Δεκ 2003 23:08

Popup message box εκεί που δεν περιμένω κάτι

Δημοσίευση από txc » 10 Νοέμ 2011 09:07

Καλημέρα παιδιά,
τρέχε ένα vb script το οποίο με ένα Loop while θα τρέχει αρκετές φορές μέχρι να ικανοποιηθεί η συνθήκη, στο τέλος του script μου πετάει ένα Pop up message box με επιλογές Ναι Όχι και καμιά τιμή μέσα, όταν πατήσω Ναι σταματάει η παραγωγή του script ενώ πατώντας Όχι κάμποσες φορές συνεχίζει παρακάτω κανονικά.

Πως το εξηγείται αυτό το περίεργο?
εγώ δεν εμφανίζω πουθενά στον κώδικα message box και μου κάνει εντύπωση πως βγαίνει αυτό το πράγμα, σκέφτομαι μήπως επειδή ο χρόνος εκτέλεσης είναι μεγάλος εξαιτίας του Loop Βγαίνει αυτό το μήνυμα?

ευχαριστώ

nkast
Δημοσιεύσεις: 137
Εγγραφή: 15 Νοέμ 2009 20:31
Επικοινωνία:

Popup message box εκεί που δεν περιμένω κάτι

Δημοσίευση από nkast » 12 Νοέμ 2011 13:01

Εξηγησε μας ΤΙ ΛΕΕΙ αυτο το message box και που τρέχει το script και θα σου πουμε αν ειναι περιεργο η οχι.

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Popup message box εκεί που δεν περιμένω κάτι

Δημοσίευση από gvre » 12 Νοέμ 2011 17:06

Υποθέτω ότι είναι το default μήνυμα που εμφανίζει ο browser όταν ένα script εκτελείται για αρκετό χρόνο. Στο message box που εμφανίζεται αναφέρει το ανάλογο μήνυμα.

txc
Δημοσιεύσεις: 627
Εγγραφή: 02 Δεκ 2003 23:08

Popup message box εκεί που δεν περιμένω κάτι

Δημοσίευση από txc » 15 Νοέμ 2011 09:10

σωστά, επειδή το Loop είναι μεγάλο βγαίνει ένα box το οποίο δεν γράφει τίποτα μέσα απλά έχει ένα κουμπί ναι / οχι και αν πατήσεις ναι σταματάει η εκτέλεση του script ενώ με το όχι συνεχίζει

καμιά ιδέα πως θα το παρακάμψω?

txc
Δημοσιεύσεις: 627
Εγγραφή: 02 Δεκ 2003 23:08

Popup message box εκεί που δεν περιμένω κάτι

Δημοσίευση από txc » 15 Νοέμ 2011 10:22

διαβάζοντας κάποια posts στο Internet βρήκα ότι υπάρχουν δύο τρόποι, ένας μέσω registry να μεγαλώσεις το timeout του internet explorer , αλλά αυτό δεν μπορώ να το κάνω για εφαρμογή που παίζει σε πολλά Pc και ο άλλος μέσω κάποιου script ,

έχει κάποιος κάτι υπόψιν?
ευχαριστώ και πάλι

nkast
Δημοσιεύσεις: 137
Εγγραφή: 15 Νοέμ 2009 20:31
Επικοινωνία:

Popup message box εκεί που δεν περιμένω κάτι

Δημοσίευση από nkast » 15 Νοέμ 2011 11:12

O IE πεταει αυτο το κενο messageBox; Ποιά εκδοση/γλώσσα;
Ετσι απο περιέργεια ρωτάω.

Γενικα οταν κανεις χρονοβορα πραγματα πρεπει αυτά να εκτελουνται παραληλα σε νεο thread, διαφορετικά παγώνει το UI. Αυτο ισχύει σε ολες τις γλώσσες απο C++/C# & VB μέχρι JS/WEB.

Ειδικα στο web εχουμε την επιλογή να μεταφερουμε οτι μπορουμε στον server (θα ελεγα οτι επιβάλετε).
H JS δεν έχει threads, αλλα προσφατα η HTML5 εισήγαγε τους 'Web Workers', κάτι σαν αποστειρωμένα threads που δεν ζητούν ένσημα. ;-)
http://blogs.msdn.com/b/davrous/archive ... roach.aspx

Για να δουλέψει με παλιότερους browsers μπορεις να κανεις ενα κολπο. Να βγαίνεις απο το loop καθε μερικα iteretions και να επιστρέφεις με ενα Timer για να συνεχίσεις.

Προσοχή στις προτεραιότητες σου! στόχος δεν είναι πλέον απλά να μην σου βγάζει το message box αλλα να έχεις ένα responsive UI (να μην κολάει ο browser/scrolling/JS menus/etc)

txc
Δημοσιεύσεις: 627
Εγγραφή: 02 Δεκ 2003 23:08

Popup message box εκεί που δεν περιμένω κάτι

Δημοσίευση από txc » 15 Νοέμ 2011 17:38

Θα κοιτάξω την έκδοση του ie και θα ενημερώσω σχετικά,
πάντως το έκανε σε 4-5 διαφορετικά pc.

αυτό το κολπάκι που αναφέρεις το βρήκα κάπου στο internet και προσπαθώ να το προσαρμώσω

Άβαταρ μέλους
Bugman
Δημοσιεύσεις: 362
Εγγραφή: 01 Ιούλ 2003 20:39
Τοποθεσία: Πρέβεζα
Επικοινωνία:

Popup message box εκεί που δεν περιμένω κάτι

Δημοσίευση από Bugman » 20 Νοέμ 2011 18:12

Στην VB σε χρονοβόρα loop βάζουμε την DoEvents. Αυτή η εντολή δίνει χρόνο στο σύστημα να επεξεργαστεί events. Το πρόβλημα είναι ότι και το τρέχον event θα μπορούσε να ενεργοποιηθεί! Οπότε με μια στατική μεταβλητή αποκλείουμε το να τρέξει δεύτερη φορά η ίδια event-ρουτίνα!

static once as boolean
if once then exit sub
once=true
κώδικας
loop {doevents}
once=false
end sub

Απάντηση

Επιστροφή στο “γλώσσες προγραμματισμού - γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες