Comments (2)
The probem you've experienced here is related to the way Angular & Zonejs work together.
Angular needs to know when the view needs to be re-evaluated, it does that by the help of Zonejs. This library will 'patch' all native browser events with a custom event listener, this event listener is used as a hook to let Angular know that a certain event occurred and change detection should be triggered.
Every single pixel you drag over will trigger such event, triggering ZoneJS, which triggers Angular's change detection. If you have many variables bound in your template, these are re-evaluated every change detection cycle. If you reference functions in your template, each function is called every change detection.
This leads to a bunch of useless usage of computation resources.
I'd recommend to check out the RxAngular Unpatch directive. This directive has been designed to 'unpatch' the ZoneJS patched events and prevents useless change detection cycles.
from ngx-file-drop.
@Laurens-makel I tried it on a small project but same components, the unpatch with the 'dragover' or 'dragleave' didn't work and the flickering didn't change. Is there perhaps something specific you can help me with?
from ngx-file-drop.
Related Issues (20)
- File upload does not recognize content type of Apple Pages file HOT 1
- v14.0.1 break the folder upload function HOT 2
- drop file not working properly sometimes with Chrom, fine with Firefox in Ubuntu HOT 2
- Folders (respectively files in it) cannot be dropped anymore HOT 3
- Accept is working different as in documentation
- Disable drop file not working HOT 1
- Excessively slow with multiple items
- Drop does not work in combination with Windows/MAC and certain browsers
- is it compatible with angular 15 and standalone components HOT 2
- It is not respecting async after update HOT 1
- How to get file size like in the demo
- Feature request: Pass in accept as argument to openFileSelector()
- Missing file when dragged from browser HOT 1
- Why FileSystemEntry not extends FileSystemEntryMetadata
- Drag Drop is accepting Bookmarks links and considering them as files
- In Linux Chrome the same dropped file occasinally represented as DataTransferItem, sometime as a normal File. Control is instable. HOT 3
- Add 'webkitRelativePath' support for uploads using <input>
- Content NgTemplate disappears after @angular/ssr hydration
- Support for the experimental syntax 'classStaticBlock' isn't currently enabled
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ngx-file-drop.