Wow, this is incredible, thanks so much for taking the time. Every point here is useful!
just coding it yourself will both save space ... and save time
This is my instinct as well, so I'm using the opportunity to specifically leanr about JQuery - otherwise I expect it to feel frustrating at times.
Use .prop() instead of .attr() whenever you can.
Did not know this, thanks much.
you don't have to care if the specific element you want to match on even exists in the DOM when you add the event.
Hadn't thought of that, that's good to keep in mind.
methods will silently fail
How do you mitigate this? Explicit run-time checks?
there's no point in manually looping over the returned results
This is one I did "know" but still somehow didn't realize you could use this way. Awesome.
functionally idempotent and declarative
This I did not realize and am a huge fan of. Unless I'm missing it, I don't think the docs make this very clear, but thinking about it, of course that's how they work.
Had not heard of cash, I'll make the case! Looks pretty snazzily familiar, he may go for it.
I'm a Systems Reliability and DevOps engineer for Netdata Inc. When not working, I enjoy studying linguistics and history, playing video games, and cooking all kinds of international cuisine.
Yeah, this one could stand to be covered more in a lot of jQuery tutorials. It's a regular source of subtle bugs as well as performance issues in code written by people who aren't familiar with jQuery.
methods will silently fail
How do you mitigate this? Explicit run-time checks?
I don't know what the norm is in big jQuery projects. For any of my stuff, I just make certain that things are strictly ordered such that this never happens (and when I can't ensure strict ordering, I use Arrive). FWIW, if you want to check, the most reliable approach is to check the length property of the returned jQuery object (if it's zero, nothing matched).
functionally idempotent and declarative
This I did not realize and am a huge fan of. Unless I'm missing it, I don't think the docs make this very clear, but thinking about it, of course that's how they work.
Yeah, the docs really don't make it clear, and while it kind of makes sense, it is inconsistent with how most programmers assume most things behave by default.
Had not heard of cash, I'll make the case! Looks pretty snazzily familiar, he may go for it.
Best time to go for it is when starting out. It's pretty easy to switch to jQuery after the fact if you need to, but not so much going the other way.
most reliable approach is to check the length property of the returned jQuery object
That works for me - I don't think this project will qualify as "big". 1-2k lines of JS total. Hadn't seen arrive, that looks handy, but I think I'm going to see how I fare without it at first.
Seriously, this has been a huge help. You've boosted my confidence going in to this project, I feel a little less lost. Thanks again!
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Wow, this is incredible, thanks so much for taking the time. Every point here is useful!
This is my instinct as well, so I'm using the opportunity to specifically leanr about JQuery - otherwise I expect it to feel frustrating at times.
Did not know this, thanks much.
Hadn't thought of that, that's good to keep in mind.
How do you mitigate this? Explicit run-time checks?
This is one I did "know" but still somehow didn't realize you could use this way. Awesome.
This I did not realize and am a huge fan of. Unless I'm missing it, I don't think the docs make this very clear, but thinking about it, of course that's how they work.
Had not heard of cash, I'll make the case! Looks pretty snazzily familiar, he may go for it.
Yeah, this one could stand to be covered more in a lot of jQuery tutorials. It's a regular source of subtle bugs as well as performance issues in code written by people who aren't familiar with jQuery.
I don't know what the norm is in big jQuery projects. For any of my stuff, I just make certain that things are strictly ordered such that this never happens (and when I can't ensure strict ordering, I use Arrive). FWIW, if you want to check, the most reliable approach is to check the
length
property of the returned jQuery object (if it's zero, nothing matched).Yeah, the docs really don't make it clear, and while it kind of makes sense, it is inconsistent with how most programmers assume most things behave by default.
Best time to go for it is when starting out. It's pretty easy to switch to jQuery after the fact if you need to, but not so much going the other way.
That works for me - I don't think this project will qualify as "big". 1-2k lines of JS total. Hadn't seen
arrive
, that looks handy, but I think I'm going to see how I fare without it at first.Seriously, this has been a huge help. You've boosted my confidence going in to this project, I feel a little less lost. Thanks again!