You just have to stop trying to show all of the data for all of the worlds at once. The Boundless Information Station has all of the filters mentioned above and more, but there are separate views for different types of data. There are over 20k World Block Colors combinations for over 1k worlds. You cannot easily show that all in a single API request or even show that in a browser window. Planet Explorer lags my browser hardcode and it takes almost a full minute for the page to re-render after I resize the window.
You sound like someone who just hates js. You probably love php though and php, just like jsp, is garbage. Iām full stack btw. I am equally experienced with both Java as well as html, css and js. The reason I donāt have a āserver sideā to my app is because for hosting, you donāt get a Java or Node (either would be fine for me) install unless you upgrade to the premium tier.
I can refactor the app as most of what I need from a filtering perspective is already there (not the sorting though) but Iām inclined to just walk away and shut it down as there are clearly some members of the community who donāt appreciate it.
Jokes aside, my opinion, as someone who uses your app, your design is significantly more powerful than the other tools available, and I would love to see this design applied with a more efficient setup.
Iām full stack too, working with PHP/React professionally, but preferring node for back-end as well, I just donāt think browsers, especially mobile browsers, are built to handle this amount of data. Yes, JS is fantastic, and I know Iām not who you made that comment to, but browsers suck at holding that much data.
I hope everyoneās feedback on your implementation doesnāt discourage you from continuing the project, as I would love to see it continued and improved.
Thanks for the positive feedback. I know Vue but havenāt done much of anything with React or Angular.
Iām a little harsh on PHP because I find it just like JSP and I hate JSP but thatās a loooooong story where Iād have explain what I do professionally and how it used to be entirely JSP-based and now uses its own HTML templating language with server and client side parts to it.
Iāll take a look at refactoring but my worry is that refactoring wonāt solve anything because, in order to get all the information I need in order to provide the features PE currently has, I would be back to making 1000+ API calls in a short amount of time like I was doing originally and that was coded against by Angellus (understandably so).
Maybe we can help you find a solution that doesnāt require this. What data are you looking for that you expect to have to query like that after looking at the endpoints @Angellus referenced? I was looking through it and it seemed like you shouldnāt have to hit more than a handful at a time most of the time if you design it around that idea.
Is that on the $5/mo plan? I will consider switching hosts if thatās the case.
I too would be very curious what plan you have @SephirothWS if they let you have Node installed. To do that on Bluehost (who Iām using) itās $25+/mo
You have to break it out into separate views to cut down on the calls. Something likeā¦
What are you looking for?
A World
Give list of worlds with options to filter. When user clicks world, pull data for world
A world with a specific color of block
Have user choose color + optionally block ā search for worlds. On click ā pull data for world
A block in a specific color
Have user choose clock and optionally color ā search for worlds. On click ā pull data for world
A world to farm a specific resource
Have user pick resource ā search for worlds. On click ā pull data for world
That set up can be 100% done frontend only with a static file host and requires zero backend and will not require thousands of API calls to complete. Only request the data the user is looking for.
I think my hosting just renewed for a year last week⦠But I will look at this next time Iām looking at actually publishing a node app. Thanks much!
Judging PHP is partially a throwback to when it was really bad for security. Also, some people think you need a lot of rules to keep you from doing stupid stuff like not sanitizing your inputs.
Make a list/table of some kind (maybe even paginated it?) and then let the user browse through them.
User clicks on a world that they want to see more about (lets say say the top one, Graveyard)
Make a request to https://api.boundlexx.app/api/v1/worlds/1174/ to get all of the world details. And optionally also make a request to any of the other following URLs if you would a like to provide extra data on the world:
Thanks @Angellus. Youāre going to end up with a ton more api calls this way but if youāre cool with it Iāll work on breaking up into smaller views with more granular calls.
As for pagination, Iām hugely against it from a ux perspective in 2020 but I can implement infinite scrolling where the necessary calls are made as per scrolling