Χρειάζομαι μια βοήθεια για ελευθερώσω την μνήμη από τα παρακάτω javascripts

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

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

Απάντηση
sibas
Honorary Member
Δημοσιεύσεις: 1853
Εγγραφή: 21 Φεβ 2003 01:21
Τοποθεσία: Μια εδώ.. Μια εκεί.. Σήμερα είμαι εδώ!!!
Επικοινωνία:

Χρειάζομαι μια βοήθεια για ελευθερώσω την μνήμη από τα παρακάτω javascripts

Δημοσίευση από sibas » 07 Σεπ 2015 15:11

Γεια χαρά σε όλους

Εδώ και αρκετό καιρό ασχολούμαι με το να φτιάξω το popcorn (πρώην cover photos)

Σαν beta μπορώ να πω ότι είμαι ευχαριστημένος, γνωρίζω ότι έχει πολλά θέματα που πρέπει να βελτιωθούν και να αλλάξουν, αλλά λειτουργεί έτσι όπως το θέλω.. και μέχρι εδώ είμαι χαρούμενος!!!

Ωστόσο έχω ένα σοβαρό πρόβλημα με κάποια effect που χρησιμοποιώ, και πρέπει να βρω λύση για το διορθώσω.

Δεν θα αναφέρω όλη την διαδικασία γιατί θα σας μπερδέψω

Δουλεύω με τα παρακάτω scripts για να πετύχω τα αντίστοιχα εφέ

https://github.com/desandro/breathing-halftone
https://github.com/maroslaw/rainyday.js
https://github.com/andyvr/water-ripple
https://github.com/geraintluff/canvas-sketch

Το πρόβλημα μου με αυτά (εκτός από το τελευταίο) είναι ότι όταν τα καλώ για να δημιουργήσουν το effect λειτουργούν ΜΙΑ ΧΑΡΑ

Αλλά..

Αν για κάποιο λόγο καλέσω ένα effect και μετά κάποιο άλλο δεν μπορώ να ελευθερώσω την μνήμη από το πρώτο! και ούτω κάθε εξής, με αποτέλεσμα να κρεμάει!!

Πραγματικά χρειάζομαι οποιαδήποτε ιδέα/βοήθεια μπορείτε να δώσετε.

Υπάρχει κάποια λύση?
Έχει να προτείνει κάποιος οποιαδήποτε ιδέα για το πώς να ελευθερώσω τη μνήμη από την λειτουργία τους όταν δεν τα χρειάζομαι?

PS: Δεν έχω ρωτήσει σε όλους τους δημιουργούς (θα το κάνω αυτές τις ημέρες), αλλά σε 2 που έγραψα δεν έλαβα απάντηση, η τα έχουν παρατήσει ή δεν ενδιαφέρονται να τα αναπτύξουν περεταίρω.

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

Χρειάζομαι μια βοήθεια για ελευθερώσω την μνήμη από τα παρακάτω javascripts

Δημοσίευση από alou » 07 Σεπ 2015 18:06

Δοκίμασες να αφαιρέσεις και να ξαναπροσθέσεις την εικόνα από το DOM?

sibas
Honorary Member
Δημοσιεύσεις: 1853
Εγγραφή: 21 Φεβ 2003 01:21
Τοποθεσία: Μια εδώ.. Μια εκεί.. Σήμερα είμαι εδώ!!!
Επικοινωνία:

Χρειάζομαι μια βοήθεια για ελευθερώσω την μνήμη από τα παρακάτω javascripts

Δημοσίευση από sibas » 08 Σεπ 2015 11:34

Ναι, ακόμα και αν αφαιρέσω την όποια εικόνα πάλι το effect που είχε χρησιμοποιηθεί τρέχει στο background.

Σαν παράδειγμα αν επιλέξεις να βγάλεις μια φώτο, ή αν κάνεις ένα upload και μετά επιλέξεις halftone από το "Add effects to photo" στην πρώτη φορά θα σου τρέξει μια χαρά.

Αν μετά πατήσησεις το Χ η εικόνα που ανέβασες θα διαγραφεί, έτσι και ξανακάνεις την διαδικασία θα δείς να σέρνεται το effect.

Ωστόσο όμως δεν είναι δυνατόν να βγάζω τις εικόνες απο το dom και να τις ξαναπροσθέτω σε κάθε effect, πχ το halftone έχει 4 διαφορετικους χρωματισμούς στα εφέ.

Έχω την εντύπωση ότι και στα 4 script πρέπει να τα πειράξω και να προσθέσω ένα function που να τα τερματίζει ..αλλά δεν είμαι και τόσο δυνατός σε αυτά!

sibas
Honorary Member
Δημοσιεύσεις: 1853
Εγγραφή: 21 Φεβ 2003 01:21
Τοποθεσία: Μια εδώ.. Μια εκεί.. Σήμερα είμαι εδώ!!!
Επικοινωνία:

Χρειάζομαι μια βοήθεια για ελευθερώσω την μνήμη από τα παρακάτω javascripts

Δημοσίευση από sibas » 08 Σεπ 2015 11:41

Αλήθεια γίνεται κάτι τέτοιο? πως μπορεί κάποιος να τερματίσει ένα script που έχει καλέσει από την μνήμη

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

Χρειάζομαι μια βοήθεια για ελευθερώσω την μνήμη από τα παρακάτω javascripts

Δημοσίευση από alou » 08 Σεπ 2015 12:08

Ενοούσα να αφαιρέσεις (και να ξαναπροσθέσεις αν χρειάζεται) το στοιχείο πάνω στο οποίο τρέχει το effect, πιθανώς να είναι canvas.

Κοίτα, θέλει σίγουρα μελέτη στον τρόπο που λειτουργεί αλλά από όσο φαντάζομαι, εφόσον είναι effect που τρέχει και δημιουργεί π.χ. ripples, υπάρχει κάποιο setInterval που προσθέτει function calls στο event queu.

Θες να κάνεις clearInterval και να τσεκάρεις το event queu.

Αφού είναι στημένο σε jQuery, ξεκίνα από εκεί
https://api.jquery.com/queue/
και δες αν βγαίνει κανένα συμπέρασμα.

Αν πρέπει να καθαρίσει η μνήμη όμως από κάποια τεράστια object, θα πρέπει να εξαφανιστεί κάθε αναφορά σε αυτά για να λειτουργήσει ο σκουπιδοφάγος (γι'αυτό σε ρώταγα αν αφαιρούσες και τα element που έχουν προφανώς event bind).

sibas
Honorary Member
Δημοσιεύσεις: 1853
Εγγραφή: 21 Φεβ 2003 01:21
Τοποθεσία: Μια εδώ.. Μια εκεί.. Σήμερα είμαι εδώ!!!
Επικοινωνία:

Χρειάζομαι μια βοήθεια για ελευθερώσω την μνήμη από τα παρακάτω javascripts

Δημοσίευση από sibas » 08 Σεπ 2015 15:37

Σε ευχαριστώ alou, το queue δεν με βοήθησε, διαβάζοντας για delete operators
https://developer.mozilla.org/en-US/doc ... ors/delete
και βλέποντας μερικά άλλα site άλλαξα μερικές λειτουργίες και βελτιώθηκε σημαντικά το πρόβλημα χωρίς όμως να εξαλειφθεί οριστικά,
ωστόσο όμως πλέον λειτουργεί σε αποδεκτά επίπεδα (ουφ :hammer: )
οι δοκιμές συνεχίζονται γιατί πρέπει να προστεθούν και τα τελικά κείμενα :D

Αν το είχες δοκιμάσει, μπορείς να δεις αν υπάρχει τώρα διαφορά?

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

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

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