Skip to content

Update the database *after* printing #197

Open
@metov

Description

@metov

The tldr client frequently wants to update pages, which requires a network request, which takes a few seconds. This seems to me like not ideal UX for a quick reference tool. When I'm trying to look up some basic syntax of a command, giving an answer quickly is more important than giving a definitive one - if I want the definitive, I'd be looking at the man page or searching on the internet instead of using tldr.

From what I can tell, the current flow is:

  1. User requests page of topic
  2. tldr checks cache, maybe updates the page
  3. tldr shows the page

I think a better UX would be:

  1. User requests page of topic
  2. If page is present in the cache:
    1. tldr shows it
    2. tldr updates the page (if cache is stale)
    3. If the new version is actually different, tldr prints a message: "This page has been changed from the one you just saw. Run tldr again to see the new version."
  3. If page is not present in the cache at all:
    1. tldr prints a message: "Hold on, fetching page from the database..."
    2. tldr updates the page
    3. tldr shows it

This is of course more complex, but I think justified by the benefit to the user. What do you think? I'm willing to author a PR if the idea sounds reasonable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions