By advantage I mean posts from those instances receiving more visibility than others on feeds that sort by score (active, hot, top).

There seems to be at least two ways in which posts from instances that don’t allow downvotes receive an advantage:

  • They don’t federate downvotes. That means other instances only count downvotes from their own users but not from the rest of the fediverse.
  • A downvote sometimes can be counted and federated as an upvote. This happens when you first upvote a post and then change it to a downvote.

Let’s see an example. Suppose we are a user from instance A that allows downvotes and we want to vote a post on instance B that doesn’t allow downvotes. Watch what happens on instance C that also allows downvotes.

  1. Before the vote this is what users from each instance see (upvote - downvote = total score)
    A: 10 - 0 = 10
    B: 10 - 0 = 10
    C: 10 - 0 = 10

  2. Now we upvote the post:
    A: 11 - 0 = 11
    B: 11 - 0 = 11
    C: 11 - 0 = 11

  3. We misclicked, we meant to downvote the post:
    A: 10 - 1 = 9
    B: 11 - 0 = 11
    C: 11 - 0 = 11

If the post was hosted on an instance that allowed downvotes users from instance C would see a total score of 9.

  • CloverSi@lemmy.comfysnug.space
    link
    fedilink
    English
    arrow-up
    1
    ·
    11 months ago

    Thank you for the explanation! That’s wild, I’ve certainly visited SPA sites but I’ve never given much thought to what must be happening under the hood there. I guess it has its use cases but from a user’s pov the quirks can be kinda annoying. Case in point, I see why load wouldn’t do the trick - hope you can find why popstate wouldn’t either (and thanks again)!

    • Anafroj@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      2
      ·
      11 months ago

      You’re welcome. :) Oh yeah, you probably use a lot of them, they are everywhere, although it’s not obvious to the user. One way to figure it out is to open the browser inspector (usually control + shift + i, same to close it) and look on the “network” tab, which lists all network requests made by the page, to see if this list gets emptied when you click a link (if it’s a real new page, the list is emptied and new requests appear).

      My apologies, I spent an hour on the popstate problem before losing interest and calling it a day. Lemmy uses the inferno frontend framework (a clone of react), which uses the inferno-router router to handle page changes, which uses the history lib to do it, which… uses pushState as I expected it would. And yet, binding on popstate won’t work. 🤷 Maybe I’ll have an other look at it one day if it bugs me enough. :)