Git Product home page Git Product logo

cablecast-public-site's People

Contributors

amanda-gerold avatar bdizzle avatar christian-bechette avatar drraccoony avatar jzemke avatar klaser avatar manzanaresk avatar mike-cablecast avatar raytiley avatar sethphillips avatar t-berk avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cablecast-public-site's Issues

Improve Performance

We've received some feedback that the initial load of the site is too slow. This is expected since we never got around to profiling / optimizing for performance before the 6.0 release. Additionally most of our testing was done against internal servers where internet latency isn't really a factor. Plus our usual DB, tighty.tv is pretty small, and therefore fast.

I did a bit of profiling and a some investigating and have some ideas on how we can make the site feel faster, probably much faster. The TLDR of some things we do is below followed my more details.

  • Serve index file with colors CSS already defined
  • Provide skeleton UI in index and hide on ember app boot
  • Coalesce thumbnail requests
  • Don't block initial render on search requests

Serve index file with colors CSS already defined

We currently block the application's first render on waiting for the custom css to load. This is because if we render first, the user will get a weird flash of the default color scheme. The best way around this is to change how the pages are served, and place a style tag with the colors css in the served html. This would allow the colors css to apply to the skeleton UI I'm proposing below.

Provide skeleton UI in index and hide on ember app boot

This is just a good practice that we forgot todo. We basically don't show anything while the JS downloads since we are a js app :) What we could do is provide a minimal layout with an SVG loading spinner or something to at least provide an initial UI. Then when the JS has processed we can hide this UI and render the full site.

Coalesce thumbnail requests

We are currently doing individual api request to get the thumbnail records. On the main site this can be 50 requests between the gallery and the slide show. This was just an oversight that was fixed in the API in 6.0.2. We just need to take advantage of it by using thumbnail when requesting the show records.

Don't block render on search requests

Currently the we block on loading basically all the data for the main page in the application route in order to load the saved searches. We also do the same thing for the search page. We should instead not return promises from the model hooks and just use the promise properties to render loading indicators where the gallery / slide show / search results go. This would allow us to render much more quickly, and give some feedback that we are waiting on API data.

Allow filtering search results by currently viewed channel.

This would require an api change, but is additive, so can be done in a maintenance release... Basically the /shows endpoint should take a channels array so it can filter by shows that appear on a channel for example: /shows?channel=2 would only return shows that aired on channel 2.

This is tricky though because do customers want to be able to allow searching for shows that haven't aired.

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.