Go to file
Ryan Shaw 50cb8d8388 Fetch things sooner on the dashboard
closes: CORE-2904 CORE-2905 CORE-2906

This will send the XHR requests for the dashcards and for all the stuff
in the planner dashboard sooner. As in, as soon as the html document 
comes back from the server, instead of waiting until all the js bundles
have downloaded and executed. This should remove a round-trip from
the dashboard page and you should notice the planner and dashcard
dashboards complete loading a lot faster. By sending the requests
sooner, our app servers can work on them while the browser is 
downloading all the rest of the JS that it needs to run the page. And 
by having our app servers work on that at the same time the browser 
works on the JS, the entire page will complete loading faster.

Test plan:
* go to the planner dashboard
* you should see 4 requests with the type “fetch” in the network panel
  in the waterfall right at the same time the html document is returned
* you should not see any more XHRs sent from axios on page load for the
  planner dashboard (it should use the prefetched ones)
* in a prod environment, where you have multiple app server processes
  handling requests, the planner dashboard should complete loading a lot
  faster

* In that same prod like environment, go to the dashcard dashboard
* same thing, it should issue a “fetch” request right with the html
  document comes back from the server and not issue an second
  XHR once the JS is loaded.
* it should be complete loading significantly faster too.


Change-Id: I0503c1a4d913fd1baa4dad22b9a88333ff747c0d
Reviewed-on: https://gerrit.instructure.com/192161
Tested-by: Jenkins
QA-Review: Mysti Lilla <mysti@instructure.com>
Product-Review: Mysti Lilla <mysti@instructure.com>
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
2019-05-17 15:55:59 +00:00
.github Auto-assign github pull requests 2019-01-25 20:56:46 +00:00
Gemfile.d add support for dynamodb 2019-05-14 22:56:47 +00:00
app Fetch things sooner on the dashboard 2019-05-17 15:55:59 +00:00
bin spec: add scripts to publish to public pact broker 2018-10-19 02:23:04 +00:00
build upgrade yarn in Dockerfiles 2019-04-30 11:34:24 +00:00
client_apps Make client_apps not fail test suite 2019-05-06 13:44:19 +00:00
config fix translation of Quizzes.Next feature name 2019-05-16 21:51:51 +00:00
db/migrate SubmissionDraft model initial commit 2019-05-17 14:42:08 +00:00
doc Update API Change log 2019-06-01 2019-05-15 16:35:45 +00:00
docker-compose Update dynamic settings lti keys entry 2019-04-12 20:08:05 +00:00
frontend_build rce: add path and word count to new status bar 2019-05-17 13:27:35 +00:00
gems log graphql mutations 2019-05-15 18:43:24 +00:00
hooks fix pre-commit hook with unfixable eslint error 2018-11-27 23:28:12 +00:00
jest Remove add-module-exports babel plugin & use esModules 2019-05-03 22:49:58 +00:00
lib add caching around recursive copied lti id query 2019-05-17 12:19:45 +00:00
packages Fetch things sooner on the dashboard 2019-05-17 15:55:59 +00:00
pact Include context_name in planner item response 2018-08-29 22:20:52 +00:00
public rce: add path and word count to new status bar 2019-05-17 13:27:35 +00:00
script Remove retry on ChromeDriver worker crash 2019-04-29 21:19:05 +00:00
spec Fetch things sooner on the dashboard 2019-05-17 15:55:59 +00:00
.bowerrc introduced bower to manage js dependencies 2013-12-13 17:45:57 +00:00
.codeclimate.yml disable ESLint in code climate 2017-02-14 17:47:39 +00:00
.dockerignore fix canvas-planner docker build process 2018-04-17 14:44:18 +00:00
.editorconfig Add EditorConfig configuration file to help maintain code style 2016-11-15 20:08:55 +00:00
.eslintignore ESLint standardization 2018-11-06 17:46:21 +00:00
.eslintrc.js Add precommit hook for auto fixing files 2018-11-27 21:07:31 +00:00
.gitignore Fetch things sooner on the dashboard 2019-05-17 15:55:59 +00:00
.i18nignore bump rails 3 to github branch for ruby 2.2 compatibility 2015-02-18 22:55:20 +00:00
.i18nrc upgrade to node 6 2016-08-09 23:37:07 +00:00
.lintstagedrc.js Add precommit hook for auto fixing files 2018-11-27 21:07:31 +00:00
.npmrc fix brand config previewing and skipping 2015-10-27 16:16:15 +00:00
.nvmrc Bump to Node 10 2019-03-22 17:29:36 +00:00
.prettierrc Add .prettierrc so it matches our existing code 2017-11-03 16:21:50 +00:00
.prettierwhitelist.js add shared components to eslint + prettier formatting 2019-03-05 20:12:40 +00:00
.rubocop.yml spec: remove ExpectChange and TimesMap 2018-08-31 14:53:41 +00:00
.selinimumignore Revert and bring InstIcons into Canvas 2016-11-29 20:52:54 +00:00
.stylelintrc Lint for css that will break RTL 2018-10-17 20:21:25 +00:00
.travis.yml more travis builds 2014-02-10 16:23:19 +00:00
CONTRIBUTING.md Add CLA FAQ from legal 2018-01-22 16:41:44 -05:00
COPYRIGHT Initial commit. 2011-01-31 18:57:29 -07:00
Dockerfile upgrade yarn in Dockerfiles 2019-04-30 11:34:24 +00:00
Dockerfile-production upgrade yarn in Dockerfiles 2019-04-30 11:34:24 +00:00
Dockerfile.githook Add precommit hook for auto fixing files 2018-11-27 21:07:31 +00:00
Gemfile allow choosing rails 5.1 via consul 2017-10-11 19:13:02 +00:00
Jenkinsfile rework docker-image gerrit messages 2019-04-25 13:35:34 +00:00
LICENSE Initial commit. 2011-01-31 18:57:29 -07:00
README.md Update README.md since Canvas is still modern 2016-12-15 03:18:28 +00:00
Rakefile remove dead parallelized specs task 2016-11-10 21:41:08 +00:00
babel.config.js upgrade webpack to v4 2019-05-16 15:59:04 +00:00
bower.json Move k5uplodaer to /packages 2019-05-10 18:30:51 +00:00
code_of_conduct.md contributor code of conduct 2014-12-23 18:13:59 +00:00
config.ru remove extra logging to debug Passenger connection orphan issue 2017-07-14 16:27:03 +00:00
docker-compose.jenkins.yml Have the RCE sidebar useable on Jenkins 2018-11-21 17:15:20 +00:00
docker-compose.new-jenkins.yml Smoke test docker image 2019-04-05 14:25:16 +00:00
docker-compose.override.yml Add precommit hook for auto fixing files 2018-11-27 21:07:31 +00:00
docker-compose.yml Use redis:alpine 2017-07-31 22:31:40 +00:00
gulpfile.js Load Lato font from google 2019-04-16 21:33:14 +00:00
issue_template.md Make issue template disclaimer a comment 2018-05-01 15:00:27 +00:00
jest.config.js add apollo graphql query validation tools 2019-04-23 19:51:10 +00:00
karma.conf.js upgrade webpack to v4 2019-05-16 15:59:04 +00:00
package.json upgrade canvas-rce to instUI 6 and consume it as esModules 2019-05-16 20:49:42 +00:00
schema.graphql add coursesConnection to Terms 2019-05-09 20:56:01 +00:00
webpack.config.js Opt our js build tooling dirs into prettier 2018-11-07 22:46:16 +00:00
webpack.test.config.js upgrade webpack to v4 2019-05-16 15:59:04 +00:00
yarn.lock rce: add path and word count to new status bar 2019-05-17 13:27:35 +00:00

README.md

Canvas LMS

Canvas is a modern, open-source LMS developed and maintained by Instructure Inc. It is released under the AGPLv3 license for use by anyone interested in learning more about or using learning management systems.

Please see our main wiki page for more information

Installation

Detailed instructions for installation and configuration of Canvas are provided on our wiki.