OpenGeoscience / geojs

High-performance visualization and interactive data exploration of scientific and geospatial location aware datasets
https://opengeoscience.github.io/geojs
Apache License 2.0
438 stars 75 forks source link

Drop jquery dependency #862

Open zachmullen opened 6 years ago

zachmullen commented 6 years ago

For modernization

aashish24 commented 6 years ago

@zachmullen this had come up in the past. we would still need something to replace it. what would be your suggestions?

zachmullen commented 6 years ago

For what purpose do you need to replace it? I would suggest using native APIs for element selection & manipulation. If you are talking about for XHR wrapping APIs, axios is a great one. For general why-isn't-this-in-the-standard-library sorts of things, underscore/lodash is nice.

zachmullen commented 6 years ago

To clarify, the intent of this is less about replacing jquery with things that meet the same needs, and more about removing jquery from any user-facing aspect of geojs. That is, downstreams of geojs should never have to know whether or not geojs depends on jquery. For example, this part of the docs should go away:

screen shot 2018-07-12 at 1 30 18 pm

And any references to jquery or $ in our tutorials should be replaced. If it turns out that jquery truly is the best tool to meet the internal needs of geojs, then we should keep it, however that would surprise me since there are so many tools designed in the modern, module-centric world to replace various parts of jquery in a way that is more painless for developers.

jbeezley commented 6 years ago

Obligatory reference: http://www.vanilla-js.com/.

zachmullen commented 6 years ago

I love that it actually downloads a 0 byte file for you.

manthey commented 6 years ago

It would be easy to drop jquery from geojs's source. We use jQuery in four ways:

We do use jQuery in some of the examples and tutorials for ajax and selectors. We could continue using it there, or do without as we see fit (but removing it from examples could be done as a separate issue).

zachmullen commented 6 years ago

If any of your actual API surface involves jquery Deferred types, I would strongly recommend breaking that in favor of native Promises for downstreams.