• dual_sport_dork 🐧🗡️@lemmy.world
    link
    fedilink
    English
    arrow-up
    9
    arrow-down
    6
    ·
    1 day ago

    First of all, I take a bit of umbrage at the author’s constant reference to “website size” without defining what this means until you dig into the FAQ. Just blithely referring to everything as “size” is a bit misleading, since I imagine most people would immediately assume size on disk which obviously makes no sense from a web browsing perspective. And indeed, they actually mean total data transferred on a page load.

    Also, basically all this does is punish sites that use images. I run an ecommerce website (and no, I’m not telling you lunatics which one) and mine absolutely would qualify handily, except… I have to provide product images. If I didn’t, my site would technically still “work” in a broad and objective sense, but my customers would stage a riot.

    A home page load on our site is just a shade over 2 megabytes transferred, the vast majority of which is product images. You can go ahead and run an online store that actually doesn’t present your customers any products on the landing page if you want to, and let me know how that works out for you.

    I don’t use any frameworks or external libraries or jQuery or any of that kind of bullshit that has to be pulled down on page load. Everything else is a paltry (these days) 115.33 kB. I’mna go ahead and point out that this is actually less to transfer than jabroni has got on his own landing page, which is 199.31 kB. That’s code and content only for both metrics, also not including his sole image — which is his favicon, and that is for some inexplicable reason given the circumstances a 512x512 .png. (I used the Firefox network profiler to generate these numbers.)

    • JustAnotherKay@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 day ago

      Do you actually have to provide the image? Couldn’t you provide a pointer to the image? Like those thumbnails that are just links on the backends but appear as images when loaded

      • dual_sport_dork 🐧🗡️@lemmy.world
        link
        fedilink
        English
        arrow-up
        9
        ·
        1 day ago

        If you’re going to display pixels on the user’s screen, you have to send those pixels to the user. Magic still doesn’t exist. HTML img tags are indeed a “pointer,” but once the user’s browser has the path to that image file it will download the entire thing.

        That said, there’s no reason to send an image that’s any bigger than it needs to be. Sending a scaled down thumbnail if you know it will be displayed small is sensible. Sending the entire 1200px wide or whatever image it is and just squashing it into a 100px wide box in the user’s browser is not.

        • JustAnotherKay@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          12 hours ago

          Once the users browser has the path to that image…

          I dunno why that didn’t occur to me, that makes sense

          • dual_sport_dork 🐧🗡️@lemmy.world
            link
            fedilink
            English
            arrow-up
            2
            ·
            12 hours ago

            That’s how it works.

            You may be thinking of “lazy loading,” where some scriptwork is used to delay downloading images until some time after the initial page load completes. This still requires all the data to be sent to the user — all of the data always has to be sent to the user eventually — but just not right away. This can have perceptible load time benefits, especially if whatever content you’re loading won’t be visible in the viewport initially anyway.

            • JustAnotherKay@lemmy.world
              link
              fedilink
              English
              arrow-up
              3
              ·
              12 hours ago

              Tbh I’m just new to the computer science scene - I’ve taken one class so far on the fundamentals of programming and have only seen a real language in my free time as of yet.

              It didn’t occur to me that the webpage which references another for an image would still be culpable for the space taken up by the image, because with on-disk memory management you can do tricks to reduce sizes with pointers and I just thought it would be analogous. It feels painfully obvious to me why that’s stupid now lol

              • dual_sport_dork 🐧🗡️@lemmy.world
                link
                fedilink
                English
                arrow-up
                2
                ·
                11 hours ago

                It’s the same line of logic as when you see people post on a forum something like [img]c:\Users\Bob\Documents\My_Image.bmp[/img] and then wonder why it doesn’t work.

                “But I can see it on my computer!”

                Over the internet, the origin of all data is on someone else’s computer. All means all. And all of it needs to come down the wire to you at some point.

                You’re on the right track in one regard, though, in a roundabout way with caching: Browsers will keep local copies of media or even the entire content of webpages on disk for some period of time, and refer to those files when the page is visited again without redownloading the data. This is especially useful for images that appear in multiple places on a website, like header and logo graphics, etc.

                This can actually become a problem if an image is updated on the server’s side, but your browser is not smart enough to figure this out. It will blithely show the old image it has in its cache, which is now outdated. (If you force refresh a webpage by holding shift when you refresh or press F5 in all of the current modern browsers, you’ll get a reload while explicitly ignoring any files already in the cache and all the images and content will be fully redownloaded, and that’s how you get around this if it happens to you.)