Git Product home page Git Product logo

Comments (13)

oytuncoban avatar oytuncoban commented on June 22, 2024

When I've 11 cards, https://regen.bingo/my-cards takes a couple of seconds to load. It should load immidiately.

So, was it a rendering issue or took a while to fetch from the contract?

from regen-bingo.

hantuzun avatar hantuzun commented on June 22, 2024

It must be about how we fetch the contract; rendering cannot take this long. I'm profiling it now.

from regen-bingo.

hantuzun avatar hantuzun commented on June 22, 2024

Screen Shot 2023-01-17 at 11 56 32

There are infinite number of fetches for the tokenURI; there is a bug on that.

from regen-bingo.

oytuncoban avatar oytuncoban commented on June 22, 2024

If we use limit&offset while getting multiple tokens from the contract we are going to need a count function too. And this makes us have to sort the tokens in decreasing order by match count "on the contract". I don't think this is suitable for gas price.

Screen Shot 2023-01-17 at 11 56 32

There are infinite number of fetches for the tokenURI; there is a bug on that.

I know the fix, done in my local. Will be pushed with pagination feature.

from regen-bingo.

hantuzun avatar hantuzun commented on June 22, 2024

Please make different fixes in different commits and branches.

from regen-bingo.

hantuzun avatar hantuzun commented on June 22, 2024

The first tokenURI calls are finalized in t1.8s but the first render begins at t8.2s.

Screen Shot 2023-01-17 at 12 00 55

Screen Shot 2023-01-17 at 11 58 04

from regen-bingo.

oytuncoban avatar oytuncoban commented on June 22, 2024

The first tokenURI calls are finalized in t1.8s but the first render begins at t8.2s.

Screen Shot 2023-01-17 at 12 00 55 Screen Shot 2023-01-17 at 11 58 04

This leads us to decoding the response and creating Card object is taking long. I'm going to optimize it then?

from regen-bingo.

oytuncoban avatar oytuncoban commented on June 22, 2024

Please make different fixes in different commits and branches.

Done in #47

from regen-bingo.

hantuzun avatar hantuzun commented on June 22, 2024

Thanks!

from regen-bingo.

hantuzun avatar hantuzun commented on June 22, 2024

This issue is not fixed yet. I tried /my-cards again on the deployment of ac8f4f5. It took 9 seconds. Below is the performance display of Brave:

Screen Shot 2023-01-17 at 15 09 12

There are 4 visible requests to the smart contract; and the render happens only after the last one.

from regen-bingo.

oytuncoban avatar oytuncoban commented on June 22, 2024

This issue is not fixed yet. I tried /my-cards again on the deployment of ac8f4f5. It took 9 seconds. Below is the performance display of Brave:

Screen Shot 2023-01-17 at 15 09 12

There are 4 visible requests to the smart contract; and the render happens only after the last one.

Is that mean fetching cards within a for loop from the contract takes too long when deployed to Göerli? I couldn't reproduce on deployed product since I have no minted cards and minting period has ended, unfortunately.

from regen-bingo.

hantuzun avatar hantuzun commented on June 22, 2024

Perhaps, needs to be investigated. One way to do would be logging timestamps on relevant requests and seeing them in action with local and Goerli deployments.

from regen-bingo.

oytuncoban avatar oytuncoban commented on June 22, 2024

Perhaps, needs to be investigated. One way to do would be logging timestamps on relevant requests and seeing them in action with local and Goerli deployments.

Previous approach was;

  • Fetch the tokenId
  • Await tokenURI
  • Await decoding and constructing the Card
  • Add to a list
  • After all the tokens have fetched and Cards are created, set the card's state.

This makes the contract calls last even longer. So, I've decided to update the card's state as a new card have constructed and render it immediately.

I've created another branch and tested a new approach on Göerli. I think it does fine, but this approach is to render the cards immediately after we fetch them so, cards will be loaded one by one. If you agree with me on this approach, we can display a loading spinner until all the cards are fetched at the end of the list @hantuzun.

from regen-bingo.

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.