History

Speed up re-rendering pages from cache

Thibaut committed 11 years ago

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

Showing the changes to assets/javascripts (23 of 23 files). Show all

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
24 @trigger 'loading'24 @trigger 'loading'
25 return25 return
26 26
27 render: (content = '') ->27 render: (content = '', fromCache = false) ->
28 return unless @activated28 return unless @activated
29 @empty()29 @empty()
30 30
31 @subview = new (@subViewClass()) @el, @entry31 @subview = new (@subViewClass()) @el, @entry
32 @subview.render(content)32 @subview.render(content, fromCache)
33 33
34 if app.disabledDocs.findBy 'slug', @entry.doc.slug34 if app.disabledDocs.findBy 'slug', @entry.doc.slug
35 @hiddenView = new app.views.HiddenPage @el, @entry35 @hiddenView = new app.views.HiddenPage @el, @entry
36 36
37 @trigger 'loaded'37 @trigger 'loaded'
38 @delay @addClipboardLinks38 @delay @addClipboardLinks unless fromCache
39 return39 return
40 40
41 CLIPBOARD_LINK = '<a class="_pre-clip" title="Copy to clipboard"></a>'41 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
122 122
123 restore: ->123 restore: ->
124 if @cacheMap[path = @entry.filePath()]124 if @cacheMap[path = @entry.filePath()]
125 @render @cacheMap[path]125 @render @cacheMap[path], true
126 true126 true
127 127
128 onClick: (event) =>128 onClick: (event) =>
assets/javascripts/views/pages/angular.coffee+1−1
@@ -1,7 +1,7 @@
1#= require views/pages/base1#= require views/pages/base
2 2
3class app.views.AngularPage extends app.views.BasePage3class app.views.AngularPage extends app.views.BasePage
4 afterRender: ->4 prepare: ->
5 for el in @findAllByTag('pre')5 for el in @findAllByTag('pre')
6 lang = if el.classList.contains('lang-html') or el.textContent[0] is '<'6 lang = if el.classList.contains('lang-html') or el.textContent[0] is '<'
7 'markup'7 'markup'
assets/javascripts/views/pages/base.coffee+2−1
@@ -1,9 +1,10 @@
1class app.views.BasePage extends app.View1class app.views.BasePage extends app.View
2 constructor: (@el, @entry) -> super2 constructor: (@el, @entry) -> super
3 3
4 render: (content) ->4 render: (content, fromCache = false) ->
5 @addClass "_#{@entry.doc.type}" unless @constructor.className5 @addClass "_#{@entry.doc.type}" unless @constructor.className
6 @html content6 @html content
7 @prepare?() unless fromCache
7 @activate()8 @activate()
8 @delay @afterRender if @afterRender9 @delay @afterRender if @afterRender
9 return10 return
assets/javascripts/views/pages/bower.coffee+1−1
@@ -1,6 +1,6 @@
1#= require views/pages/base1#= require views/pages/base
2 2
3class app.views.BowerPage extends app.views.BasePage3class app.views.BowerPage extends app.views.BasePage
4 afterRender: ->4 prepare: ->
5 @highlightCode @findAll('pre[data-lang="js"], pre[data-lang="javascript"], pre[data-lang="json"]'), 'javascript'5 @highlightCode @findAll('pre[data-lang="js"], pre[data-lang="javascript"], pre[data-lang="json"]'), 'javascript'
6 return6 return
assets/javascripts/views/pages/c.coffee+1−1
@@ -1,7 +1,7 @@
1#= require views/pages/base1#= require views/pages/base
2 2
3class app.views.CPage extends app.views.BasePage3class app.views.CPage extends app.views.BasePage
4 afterRender: ->4 prepare: ->
5 @highlightCode @findAll('pre.source-c, .source-c > pre'), 'c'5 @highlightCode @findAll('pre.source-c, .source-c > pre'), 'c'
6 @highlightCode @findAll('pre.source-cpp, .source-cpp > pre'), 'cpp'6 @highlightCode @findAll('pre.source-cpp, .source-cpp > pre'), 'cpp'
7 return7 return
assets/javascripts/views/pages/coffeescript.coffee+1−1
@@ -1,7 +1,7 @@
1#= require views/pages/base1#= require views/pages/base
2 2
3class app.views.CoffeescriptPage extends app.views.BasePage3class app.views.CoffeescriptPage extends app.views.BasePage
4 afterRender: ->4 prepare: ->
5 @highlightCode @findAll('.code > pre:first-child'), 'coffeescript'5 @highlightCode @findAll('.code > pre:first-child'), 'coffeescript'
6 @highlightCode @findAll('.code > pre:last-child'), 'javascript'6 @highlightCode @findAll('.code > pre:last-child'), 'javascript'
7 return7 return
assets/javascripts/views/pages/d3.coffee+1−1
@@ -1,6 +1,6 @@
1#= require views/pages/base1#= require views/pages/base
2 2
3class app.views.D3Page extends app.views.BasePage3class app.views.D3Page extends app.views.BasePage
4 afterRender: ->4 prepare: ->
5 @highlightCode @findAll('.highlight > pre'), 'javascript'5 @highlightCode @findAll('.highlight > pre'), 'javascript'
6 return6 return
assets/javascripts/views/pages/drupal.coffee+1−1
@@ -1,6 +1,6 @@
1#= require views/pages/base1#= require views/pages/base
2 2
3class app.views.DrupalPage extends app.views.BasePage3class app.views.DrupalPage extends app.views.BasePage
4 afterRender: ->4 prepare: ->
5 @highlightCode @findAll('pre.php'), 'php'5 @highlightCode @findAll('pre.php'), 'php'
6 return6 return
assets/javascripts/views/pages/ember.coffee+1−1
@@ -1,7 +1,7 @@
1#= require views/pages/base1#= require views/pages/base
2 2
3class app.views.EmberPage extends app.views.BasePage3class app.views.EmberPage extends app.views.BasePage
4 afterRender: ->4 prepare: ->
5 for el in @findAllByTag 'pre'5 for el in @findAllByTag 'pre'
6 language = if el.classList.contains 'javascript'6 language = if el.classList.contains 'javascript'
7 'javascript'7 'javascript'
assets/javascripts/views/pages/go.coffee+1−1
@@ -1,6 +1,6 @@
1#= require views/pages/base1#= require views/pages/base
2 2
3class app.views.GoPage extends app.views.BasePage3class app.views.GoPage extends app.views.BasePage
4 afterRender: ->4 prepare: ->
5 @highlightCode @findAll('pre'), 'go'5 @highlightCode @findAll('pre'), 'go'
6 return6 return
assets/javascripts/views/pages/javascript.coffee+2−2
@@ -1,12 +1,12 @@
1#= require views/pages/base1#= require views/pages/base
2 2
3class app.views.JavascriptPage extends app.views.BasePage3class app.views.JavascriptPage extends app.views.BasePage
4 afterRender: ->4 prepare: ->
5 @highlightCode @findAllByTag('pre'), 'javascript'5 @highlightCode @findAllByTag('pre'), 'javascript'
6 return6 return
7 7
8class app.views.JavascriptWithMarkupCheckPage extends app.views.BasePage8class app.views.JavascriptWithMarkupCheckPage extends app.views.BasePage
9 afterRender: ->9 prepare: ->
10 for el in @findAllByTag('pre')10 for el in @findAllByTag('pre')
11 language = if el.textContent.match(/^\s*</)11 language = if el.textContent.match(/^\s*</)
12 'markup'12 'markup'
assets/javascripts/views/pages/jquery.coffee+6−5
@@ -3,6 +3,12 @@ · 2 unmodified lines
3class app.views.JqueryPage extends app.views.BasePage3class app.views.JqueryPage extends app.views.BasePage
4 @demoClassName: '_jquery-demo'4 @demoClassName: '_jquery-demo'
5 5
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
6 afterRender: ->12 afterRender: ->
7 # Prevent jQuery Mobile's demo iframes from scrolling the page13 # Prevent jQuery Mobile's demo iframes from scrolling the page
8 for iframe in @findAllByTag 'iframe'14 for iframe in @findAllByTag 'iframe'
@@ -11,11 +17,6 @@ class app.views.JqueryPage extends app.views.BasePage · 2 unmodified lines
11 17
12 @runExamples()18 @runExamples()
13 19
14 for el in @findAllByClass 'syntaxhighlighter'
15 language = if el.classList.contains('javascript') then 'javascript' else 'markup'
16 @highlightCode el, language
17 return
18
19 onIframeLoaded: (event) =>20 onIframeLoaded: (event) =>
20 event.target.style.display = ''21 event.target.style.display = ''
21 $.off event.target, 'load', @onIframeLoaded22 $.off event.target, 'load', @onIframeLoaded
assets/javascripts/views/pages/knockout.coffee+1−1
@@ -1,7 +1,7 @@
1#= require views/pages/base1#= require views/pages/base
2 2
3class app.views.KnockoutPage extends app.views.BasePage3class app.views.KnockoutPage extends app.views.BasePage
4 afterRender: ->4 prepare: ->
5 for el in @findAll('pre')5 for el in @findAll('pre')
6 language = if el.innerHTML.indexOf('data-bind="') > 0 then 'markup' else 'javascript'6 language = if el.innerHTML.indexOf('data-bind="') > 0 then 'markup' else 'javascript'
7 @highlightCode el, language7 @highlightCode el, language
assets/javascripts/views/pages/laravel.coffee+1−1
@@ -1,6 +1,6 @@
1#= require views/pages/base1#= require views/pages/base
2 2
3class app.views.LaravelPage extends app.views.BasePage3class app.views.LaravelPage extends app.views.BasePage
4 afterRender: ->4 prepare: ->
5 @highlightCode @findAllByTag('pre'), 'php'5 @highlightCode @findAllByTag('pre'), 'php'
6 return6 return
assets/javascripts/views/pages/mdn.coffee+1−1
@@ -5,7 +5,7 @@ class app.views.MdnPage extends app.views.BasePage · 4 unmodified lines
5 5
6 LANGUAGE_REGEXP = /brush: ?(\w+)/6 LANGUAGE_REGEXP = /brush: ?(\w+)/
7 7
8 afterRender: ->8 prepare: ->
9 for el in @findAll 'pre[class^="brush"]'9 for el in @findAll 'pre[class^="brush"]'
10 language = el.className.match(LANGUAGE_REGEXP)[1]10 language = el.className.match(LANGUAGE_REGEXP)[1]
11 .replace('html', 'markup')11 .replace('html', 'markup')
assets/javascripts/views/pages/meteor.coffee+1−1
@@ -1,7 +1,7 @@
1#= require views/pages/base1#= require views/pages/base
2 2
3class app.views.MeteorPage extends app.views.BasePage3class app.views.MeteorPage extends app.views.BasePage
4 afterRender: ->4 prepare: ->
5 @highlightCode @findAll('pre.js, pre.javascript'), 'javascript'5 @highlightCode @findAll('pre.js, pre.javascript'), 'javascript'
6 @highlightCode @findAll('pre.html'), 'markup'6 @highlightCode @findAll('pre.html'), 'markup'
7 return7 return
assets/javascripts/views/pages/phalcon.coffee+1−1
@@ -1,7 +1,7 @@
1#= require views/pages/base1#= require views/pages/base
2 2
3class app.views.PhalconPage extends app.views.BasePage3class app.views.PhalconPage extends app.views.BasePage
4 afterRender: ->4 prepare: ->
5 @highlightCode @findAll('pre[class*="php"]'), 'php'5 @highlightCode @findAll('pre[class*="php"]'), 'php'
6 @highlightCode @findAll('pre.highlight-html'), 'markup'6 @highlightCode @findAll('pre.highlight-html'), 'markup'
7 return7 return
assets/javascripts/views/pages/php.coffee+1−1
@@ -1,6 +1,6 @@
1#= require views/pages/base1#= require views/pages/base
2 2
3class app.views.PhpPage extends app.views.BasePage3class app.views.PhpPage extends app.views.BasePage
4 afterRender: ->4 prepare: ->
5 @highlightCode @findAllByClass('phpcode'), 'php'5 @highlightCode @findAllByClass('phpcode'), 'php'
6 return6 return
assets/javascripts/views/pages/phpunit.coffee+1−1
@@ -1,6 +1,6 @@
1#= require views/pages/base1#= require views/pages/base
2 2
3class app.views.PhpunitPage extends app.views.BasePage3class app.views.PhpunitPage extends app.views.BasePage
4 afterRender: ->4 prepare: ->
5 @highlightCode @findAll('pre.programlisting'), 'php'5 @highlightCode @findAll('pre.programlisting'), 'php'
6 return6 return
assets/javascripts/views/pages/rdoc.coffee+1−1
@@ -4,7 +4,7 @@ class app.views.RdocPage extends app.views.BasePage · 3 unmodified lines
4 @events:4 @events:
5 click: 'onClick'5 click: 'onClick'
6 6
7 afterRender: ->7 prepare: ->
8 @highlightCode @findAll('pre.ruby'), 'ruby'8 @highlightCode @findAll('pre.ruby'), 'ruby'
9 @highlightCode @findAll('pre.c'), 'clike'9 @highlightCode @findAll('pre.c'), 'clike'
10 return10 return
assets/javascripts/views/pages/react.coffee+1−1
@@ -1,7 +1,7 @@
1#= require views/pages/base1#= require views/pages/base
2 2
3class app.views.ReactPage extends app.views.BasePage3class app.views.ReactPage extends app.views.BasePage
4 afterRender: ->4 prepare: ->
5 for el in @findAllByTag 'pre'5 for el in @findAllByTag 'pre'
6 switch el.getAttribute('data-lang')6 switch el.getAttribute('data-lang')
7 when 'html' then @highlightCode el, 'markup'7 when 'html' then @highlightCode el, 'markup'
assets/javascripts/views/pages/rust.coffee+1−1
@@ -1,6 +1,6 @@
1#= require views/pages/base1#= require views/pages/base
2 2
3class app.views.RustPage extends app.views.BasePage3class app.views.RustPage extends app.views.BasePage
4 afterRender: ->4 prepare: ->
5 @highlightCode @findAll('pre.rust'), 'rust'5 @highlightCode @findAll('pre.rust'), 'rust'
6 return6 return
assets/javascripts/views/pages/sphinx.coffee+1−1
@@ -1,7 +1,7 @@
1#= require views/pages/base1#= require views/pages/base
2 2
3class app.views.SphinxPage extends app.views.BasePage3class app.views.SphinxPage extends app.views.BasePage
4 afterRender: ->4 prepare: ->
5 @highlightCode @findAll('pre.python'), 'python'5 @highlightCode @findAll('pre.python'), 'python'
6 @highlightCode @findAll('pre.markup'), 'markup'6 @highlightCode @findAll('pre.markup'), 'markup'
7 return7 return