History

Speed up re-rendering pages from cache

Thibaut committed 11 years ago

Commit dbc628c1 parent a37e9d823 files · +33 −31Browse files

Unified · Split

23 files
  1. assets/javascripts/views/content/entry_page.coffee +4 −4
  2. assets/javascripts/views/pages/angular.coffee +1 −1
  3. assets/javascripts/views/pages/base.coffee +2 −1
  4. assets/javascripts/views/pages/bower.coffee +1 −1
  5. assets/javascripts/views/pages/c.coffee +1 −1
  6. assets/javascripts/views/pages/coffeescript.coffee +1 −1
  7. assets/javascripts/views/pages/d3.coffee +1 −1
  8. assets/javascripts/views/pages/drupal.coffee +1 −1
  9. assets/javascripts/views/pages/ember.coffee +1 −1
  10. assets/javascripts/views/pages/go.coffee +1 −1
  11. assets/javascripts/views/pages/javascript.coffee +2 −2
  12. assets/javascripts/views/pages/jquery.coffee +6 −5
  13. assets/javascripts/views/pages/knockout.coffee +1 −1
  14. assets/javascripts/views/pages/laravel.coffee +1 −1
  15. assets/javascripts/views/pages/mdn.coffee +1 −1
  16. assets/javascripts/views/pages/meteor.coffee +1 −1
  17. assets/javascripts/views/pages/phalcon.coffee +1 −1
  18. assets/javascripts/views/pages/php.coffee +1 −1
  19. assets/javascripts/views/pages/phpunit.coffee +1 −1
  20. assets/javascripts/views/pages/rdoc.coffee +1 −1
  21. assets/javascripts/views/pages/react.coffee +1 −1
  22. assets/javascripts/views/pages/rust.coffee +1 −1
  23. assets/javascripts/views/pages/sphinx.coffee +1 −1
assets/javascripts/views/content/entry_page.coffee+4−4
@@ -24,18 +24,18 @@ class app.views.EntryPage extends app.View · 23 unmodified lines
2424 @trigger 'loading'
2525 return
2626
27− render: (content = '') ->
27+ render: (content = '', fromCache = false) ->
2828 return unless @activated
2929 @empty()
3030
3131 @subview = new (@subViewClass()) @el, @entry
32− @subview.render(content)
32+ @subview.render(content, fromCache)
3333
3434 if app.disabledDocs.findBy 'slug', @entry.doc.slug
3535 @hiddenView = new app.views.HiddenPage @el, @entry
3636
3737 @trigger 'loaded'
38− @delay @addClipboardLinks
38+ @delay @addClipboardLinks unless fromCache
3939 return
4040
4141 CLIPBOARD_LINK = '<a class="_pre-clip" title="Copy to clipboard"></a>'
@@ -122,7 +122,7 @@ class app.views.EntryPage extends app.View · 80 unmodified lines
122122
123123 restore: ->
124124 if @cacheMap[path = @entry.filePath()]
125− @render @cacheMap[path]
125+ @render @cacheMap[path], true
126126 true
127127
128128 onClick: (event) =>
assets/javascripts/views/pages/angular.coffee+1−1
@@ -1,7 +1,7 @@
11 #= require views/pages/base
22
33 class app.views.AngularPage extends app.views.BasePage
4− afterRender: ->
4+ prepare: ->
55 for el in @findAllByTag('pre')
66 lang = if el.classList.contains('lang-html') or el.textContent[0] is '<'
77 'markup'
assets/javascripts/views/pages/base.coffee+2−1
@@ -1,9 +1,10 @@
11 class app.views.BasePage extends app.View
22 constructor: (@el, @entry) -> super
33
4− render: (content) ->
4+ render: (content, fromCache = false) ->
55 @addClass "_#{@entry.doc.type}" unless @constructor.className
66 @html content
7+ @prepare?() unless fromCache
78 @activate()
89 @delay @afterRender if @afterRender
910 return
assets/javascripts/views/pages/bower.coffee+1−1
@@ -1,6 +1,6 @@
11 #= require views/pages/base
22
33 class app.views.BowerPage extends app.views.BasePage
4− afterRender: ->
4+ prepare: ->
55 @highlightCode @findAll('pre[data-lang="js"], pre[data-lang="javascript"], pre[data-lang="json"]'), 'javascript'
66 return
assets/javascripts/views/pages/c.coffee+1−1
@@ -1,7 +1,7 @@
11 #= require views/pages/base
22
33 class app.views.CPage extends app.views.BasePage
4− afterRender: ->
4+ prepare: ->
55 @highlightCode @findAll('pre.source-c, .source-c > pre'), 'c'
66 @highlightCode @findAll('pre.source-cpp, .source-cpp > pre'), 'cpp'
77 return
assets/javascripts/views/pages/coffeescript.coffee+1−1
@@ -1,7 +1,7 @@
11 #= require views/pages/base
22
33 class app.views.CoffeescriptPage extends app.views.BasePage
4− afterRender: ->
4+ prepare: ->
55 @highlightCode @findAll('.code > pre:first-child'), 'coffeescript'
66 @highlightCode @findAll('.code > pre:last-child'), 'javascript'
77 return
assets/javascripts/views/pages/d3.coffee+1−1
@@ -1,6 +1,6 @@
11 #= require views/pages/base
22
33 class app.views.D3Page extends app.views.BasePage
4− afterRender: ->
4+ prepare: ->
55 @highlightCode @findAll('.highlight > pre'), 'javascript'
66 return
assets/javascripts/views/pages/drupal.coffee+1−1
@@ -1,6 +1,6 @@
11 #= require views/pages/base
22
33 class app.views.DrupalPage extends app.views.BasePage
4− afterRender: ->
4+ prepare: ->
55 @highlightCode @findAll('pre.php'), 'php'
66 return
assets/javascripts/views/pages/ember.coffee+1−1
@@ -1,7 +1,7 @@
11 #= require views/pages/base
22
33 class app.views.EmberPage extends app.views.BasePage
4− afterRender: ->
4+ prepare: ->
55 for el in @findAllByTag 'pre'
66 language = if el.classList.contains 'javascript'
77 'javascript'
assets/javascripts/views/pages/go.coffee+1−1
@@ -1,6 +1,6 @@
11 #= require views/pages/base
22
33 class app.views.GoPage extends app.views.BasePage
4− afterRender: ->
4+ prepare: ->
55 @highlightCode @findAll('pre'), 'go'
66 return
assets/javascripts/views/pages/javascript.coffee+2−2
@@ -1,12 +1,12 @@
11 #= require views/pages/base
22
33 class app.views.JavascriptPage extends app.views.BasePage
4− afterRender: ->
4+ prepare: ->
55 @highlightCode @findAllByTag('pre'), 'javascript'
66 return
77
88 class app.views.JavascriptWithMarkupCheckPage extends app.views.BasePage
9− afterRender: ->
9+ prepare: ->
1010 for el in @findAllByTag('pre')
1111 language = if el.textContent.match(/^\s*</)
1212 'markup'
assets/javascripts/views/pages/jquery.coffee+6−5
@@ -3,6 +3,12 @@ · 2 unmodified lines
33 class app.views.JqueryPage extends app.views.BasePage
44 @demoClassName: '_jquery-demo'
55
6+ prepare: ->
7+ for el in @findAllByClass 'syntaxhighlighter'
8+ language = if el.classList.contains('javascript') then 'javascript' else 'markup'
9+ @highlightCode el, language
10+ return
11+
612 afterRender: ->
713 # Prevent jQuery Mobile's demo iframes from scrolling the page
814 for iframe in @findAllByTag 'iframe'
@@ -11,11 +17,6 @@ class app.views.JqueryPage extends app.views.BasePage · 2 unmodified lines
1117
1218 @runExamples()
1319
14− for el in @findAllByClass 'syntaxhighlighter'
15− language = if el.classList.contains('javascript') then 'javascript' else 'markup'
16− @highlightCode el, language
17− return
18−
1920 onIframeLoaded: (event) =>
2021 event.target.style.display = ''
2122 $.off event.target, 'load', @onIframeLoaded
assets/javascripts/views/pages/knockout.coffee+1−1
@@ -1,7 +1,7 @@
11 #= require views/pages/base
22
33 class app.views.KnockoutPage extends app.views.BasePage
4− afterRender: ->
4+ prepare: ->
55 for el in @findAll('pre')
66 language = if el.innerHTML.indexOf('data-bind="') > 0 then 'markup' else 'javascript'
77 @highlightCode el, language
assets/javascripts/views/pages/laravel.coffee+1−1
@@ -1,6 +1,6 @@
11 #= require views/pages/base
22
33 class app.views.LaravelPage extends app.views.BasePage
4− afterRender: ->
4+ prepare: ->
55 @highlightCode @findAllByTag('pre'), 'php'
66 return
assets/javascripts/views/pages/mdn.coffee+1−1
@@ -5,7 +5,7 @@ class app.views.MdnPage extends app.views.BasePage · 4 unmodified lines
55
66 LANGUAGE_REGEXP = /brush: ?(\w+)/
77
8− afterRender: ->
8+ prepare: ->
99 for el in @findAll 'pre[class^="brush"]'
1010 language = el.className.match(LANGUAGE_REGEXP)[1]
1111 .replace('html', 'markup')
assets/javascripts/views/pages/meteor.coffee+1−1
@@ -1,7 +1,7 @@
11 #= require views/pages/base
22
33 class app.views.MeteorPage extends app.views.BasePage
4− afterRender: ->
4+ prepare: ->
55 @highlightCode @findAll('pre.js, pre.javascript'), 'javascript'
66 @highlightCode @findAll('pre.html'), 'markup'
77 return
assets/javascripts/views/pages/phalcon.coffee+1−1
@@ -1,7 +1,7 @@
11 #= require views/pages/base
22
33 class app.views.PhalconPage extends app.views.BasePage
4− afterRender: ->
4+ prepare: ->
55 @highlightCode @findAll('pre[class*="php"]'), 'php'
66 @highlightCode @findAll('pre.highlight-html'), 'markup'
77 return
assets/javascripts/views/pages/php.coffee+1−1
@@ -1,6 +1,6 @@
11 #= require views/pages/base
22
33 class app.views.PhpPage extends app.views.BasePage
4− afterRender: ->
4+ prepare: ->
55 @highlightCode @findAllByClass('phpcode'), 'php'
66 return
assets/javascripts/views/pages/phpunit.coffee+1−1
@@ -1,6 +1,6 @@
11 #= require views/pages/base
22
33 class app.views.PhpunitPage extends app.views.BasePage
4− afterRender: ->
4+ prepare: ->
55 @highlightCode @findAll('pre.programlisting'), 'php'
66 return
assets/javascripts/views/pages/rdoc.coffee+1−1
@@ -4,7 +4,7 @@ class app.views.RdocPage extends app.views.BasePage · 3 unmodified lines
44 @events:
55 click: 'onClick'
66
7− afterRender: ->
7+ prepare: ->
88 @highlightCode @findAll('pre.ruby'), 'ruby'
99 @highlightCode @findAll('pre.c'), 'clike'
1010 return
assets/javascripts/views/pages/react.coffee+1−1
@@ -1,7 +1,7 @@
11 #= require views/pages/base
22
33 class app.views.ReactPage extends app.views.BasePage
4− afterRender: ->
4+ prepare: ->
55 for el in @findAllByTag 'pre'
66 switch el.getAttribute('data-lang')
77 when 'html' then @highlightCode el, 'markup'
assets/javascripts/views/pages/rust.coffee+1−1
@@ -1,6 +1,6 @@
11 #= require views/pages/base
22
33 class app.views.RustPage extends app.views.BasePage
4− afterRender: ->
4+ prepare: ->
55 @highlightCode @findAll('pre.rust'), 'rust'
66 return
assets/javascripts/views/pages/sphinx.coffee+1−1
@@ -1,7 +1,7 @@
11 #= require views/pages/base
22
33 class app.views.SphinxPage extends app.views.BasePage
4− afterRender: ->
4+ prepare: ->
55 @highlightCode @findAll('pre.python'), 'python'
66 @highlightCode @findAll('pre.markup'), 'markup'
77 return