Git Product home page Git Product logo

Comments (10)

andrew avatar andrew commented on May 24, 2024 1

Sounds a lot like e-tag caching

from browsh.

tobimensch avatar tobimensch commented on May 24, 2024

An advanced version of this could send a message to the client that the whole page simply hasn't changed (assuming the client loaded the whole page from top to bottom before) and therefore the client could operate completely from the cache and scroll up down without any latency until a link is clicked or a the server/webext sends another message that something on the page has changed.

Caching wouldn't only be good for the user experience with drastically reduced load times, latency and bandwith usage, it would also reduce the bandwith required from the server/webext and hopefully also cut down on rendering times, if it's possible to detect that a webpage is unchanged in the webext without needing to render it (for example through checking for changes in the html sources..).

from browsh.

tombh avatar tombh commented on May 24, 2024

Are you talking about the HTTP Server or the TTY client? Because caching will very easily be achieved for the HTTP Server using Google's CDN.

from browsh.

tobimensch avatar tobimensch commented on May 24, 2024

I'm talking about all current (TTY) and future clients. I'm assuming the http-server will only be one of many ways to browsh.

In my opinion special browsh optimized browsers (that aren't traditional web/HTML browsers and are comparable to the current TTY client) will produce the best surfing result possible.

from browsh.

tobimensch avatar tobimensch commented on May 24, 2024

I'm talking specifically about client side caching in this issue, however server side caching is equally as important, of course.

from browsh.

tombh avatar tombh commented on May 24, 2024

The trouble is that caching will be impossible for the TTY client. For example, what if you cache the pages of a site that people log into - you could end up loading your email page only to see the cached version of someone else's emails!

from browsh.

tobimensch avatar tobimensch commented on May 24, 2024

The obvious answer would be to have separate clients for separate users with separate configs/userdirs etc.

And I'm running it on my own server for myself, so there's no conflict with other user's data privacy in sight.

Maybe the tty client should even be completely separated from the webext/server. I know mosh has benefits with compression and allowing for a stable connection and so forth, but besides this there's no logical reason why the tty client shouldn't be able to run locally on a user's machine eventually, like say the irssi IRC client which I hold dear.

from browsh.

tombh avatar tombh commented on May 24, 2024

I've definitely thought about building a custom client for Browsh, taking the best bits of Mosh but adding Browsh-specific features. The trouble is that it's an extraordinary amount of work :/

But also, about this caching idea, I think there would still be caveats to caching based on URL. There are so many web pages with dynamic content, that I think it'd be largely frustrating. Like getting a password reset reminder, but being able to see it in your email until the cache had expired. I mean I guess there could be an option to turn cache on and off.

from browsh.

tobimensch avatar tobimensch commented on May 24, 2024

That's why I suggested that something like an md5sum should be sent to the client. The md5sum is generated from the content that is going to be displayed.
If the client already has the same md5sum in its cache database, then it knows that it doesn't need to request/load the whole content and can pull and display it from the cache.

from browsh.

tombh avatar tombh commented on May 24, 2024

Oh! I didn't get that from the first reading, but yes that's a very doable idea.

from browsh.

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.