GithubHelp home page GithubHelp logo

Split rendered image into smaller pieces using a <table> element? about wrp HOT 10 OPEN

danielnez1 avatar danielnez1 commented on June 14, 2024
Split rendered image into smaller pieces using a element?

from wrp.

Comments (10)

tenox7 avatar tenox7 commented on June 14, 2024 1

Right I can see that working. You could (perhaps) control cache of individual images/slices and basically expire images you want to update and download for the changed ones. I think some experimentation is in order.

from wrp.

tenox7 avatar tenox7 commented on June 14, 2024 1

I believe even in the 90s browsers still used HEAD (even in HTTP/1.0 https://datatracker.ietf.org/doc/html/rfc1945#section-8.2) to check if resource (image in this case) has been modified since last request. Of course browsers vary a lot and testing is required, but theoretically the idea is solid. I will probably write a test tool that will output a grid of small images that will be constantly changing and we can get it tested on all different browsers.

from wrp.

tenox7 avatar tenox7 commented on June 14, 2024

Ha! That's a neat idea. I think you don't even need a table you could potentially just add images beside each other in a row and <BR> for a new row. As for breaking image maps, you could just have a separate map for each image.

from wrp.

rhaleblian avatar rhaleblian commented on June 14, 2024

Going further, if we think of WRP as VNC, but just inside a browser, then you could think about parts of an image canvas (the rendered page) being damaged and needing a redraw, like VNC and X11 do.

You'd cut the image into the regions that might need to change independently. The regions won't be the same size; they might be like an octree. Assuming the vintage browser can only request a whole page at a time (no fetching pieces async), you still send the whole page but make sure the client can still hit its cache for unchanged imagemaps. Then, with luck the client only needs to download the changed piece.

@danielnez1 did you have something working? I could try it on NEXTSTEP.

from wrp.

rhaleblian avatar rhaleblian commented on June 14, 2024

(perhaps) control cache of individual images/slices

This is where the idea might just overreach -- a 90s browser may only get a timestamp for a page resource, and nothing for any resources it references, like IMG tags. But if that were the case that would imply that old-school browser could never cache images, which seems unlikely?

from wrp.

rhaleblian avatar rhaleblian commented on June 14, 2024

Wrapping with <TABLE> should keep browsers from line breaking image rows, i theenk that any whitespace or tag boundary is otherwise fair game for a renderer to insert a newline...

from wrp.

tenox7 avatar tenox7 commented on June 14, 2024

I think nbsp was always there, but table without CSS could never be fully controlled. I'm not sure if border=0 cellpadding=0 cellspacing=0 will work as you think it will. Maybe...

from wrp.

danielnez1 avatar danielnez1 commented on June 14, 2024

@rhaleblian Sorry for the late reply, no I never got around to implementing it :-(

As others have pointed out, I discovered my rudimentary experiments (I never got as far as hacking the Go code) showed that the different browsers handle the visual formatting of <table>, <tr> and <td> elements slightly differently, so cause whitespace issues.

from wrp.

tenox7 avatar tenox7 commented on June 14, 2024

Right! Before CSS there was no way to control this and different browsers handled this differently.

There are other options I'm exploring in the mean time.

GIF encoding can be speed up dramatically by using concurrency.
Perhaps heavier compression, less colors could be used by default, especially for less graphical pages.
GIF image download could start earlier on the client and be blocked or even made progressive as it's being encoded.

from wrp.

rhaleblian avatar rhaleblian commented on June 14, 2024

Good research! Such were the days.
Yes to small palettes. It keeps with the retro aspect of many use cases.
On the NeXT there's only four colors and they are all monochrome! With dithering magic.

from wrp.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.