Fixed a potential JSONP callback exception.
This commit is contained in:
parent
3c8fb76356
commit
3422e2a66f
2 changed files with 28 additions and 18 deletions
|
@ -40,11 +40,15 @@ function countPV(path, rows) {
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
function displayPageviews(rows, hasInit) {
|
|
||||||
if (rows === undefined) {
|
function displayPageviews(data) {
|
||||||
|
if (data === undefined) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var hasInit = getInitStatus();
|
||||||
|
var rows = data.rows;
|
||||||
|
|
||||||
if ($("#post-list").length > 0) { // the Home page
|
if ($("#post-list").length > 0) { // the Home page
|
||||||
$(".post-preview").each(function() {
|
$(".post-preview").each(function() {
|
||||||
var path = $(this).children("h1").children("a").attr("href");
|
var path = $(this).children("h1").children("a").attr("href");
|
||||||
|
@ -78,29 +82,35 @@ function displayPageviews(rows, hasInit) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var getInitStatus = (function() {
|
||||||
|
var hasInit = false;
|
||||||
|
return function() {
|
||||||
|
if (hasInit) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
hasInit = true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
|
|
||||||
$(function() {
|
$(function() {
|
||||||
// load pageview if this page has .pageviews
|
// load pageview if this page has .pageviews
|
||||||
if ($('.pageviews').length > 0) {
|
if ($('.pageviews').length > 0) {
|
||||||
var hasInit = false;
|
|
||||||
|
|
||||||
// Get data from daily cache.
|
// Get data from daily cache.
|
||||||
$.getJSON('/assets/data/pageviews.json', function(data) {
|
$.getJSON('/assets/data/pageviews.json', displayPageviews);
|
||||||
displayPageviews(data.rows, hasInit);
|
|
||||||
hasInit = true;
|
|
||||||
});
|
|
||||||
|
|
||||||
$.getJSON('/assets/data/proxy.json', function(data) {
|
$.getJSON('/assets/data/proxy.json', function(meta) {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: data.proxyUrl,
|
type: 'GET',
|
||||||
|
url: meta.proxyUrl,
|
||||||
dataType: 'jsonp',
|
dataType: 'jsonp',
|
||||||
timeout: 2000,
|
jsonpCallback: "displayPageviews",
|
||||||
success: function(data) {
|
error: function(jqXHR, textStatus, errorThrown) {
|
||||||
displayPageviews(data.rows, hasInit);
|
console.log("Failed to load pageviews from proxy server: " + errorThrown);
|
||||||
},
|
|
||||||
error: function(xhr, status, err) {
|
|
||||||
console.log("Failed to load pageviews from proxy server.");
|
|
||||||
xhr.abort();
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
2
assets/js/dist/pageviews.min.js
vendored
2
assets/js/dist/pageviews.min.js
vendored
|
@ -1 +1 @@
|
||||||
function countUp(c,a,b){if(c<a){var d=new CountUp(b,c,a);if(!d.error){d.start()}else{console.error(d.error)}}}function countPV(f,e){var g=f.replace(/\/posts\//g,"").replace(/\//g,".html");var d=0;var c=f.replace(/posts\//g,"");for(var b=0;b<e.length;++b){var a=e[b][0];if(a==f||a==c||a.concat("/")==c||a.slice(a.lastIndexOf("/")+1)===g){d+=parseInt(e[b][1])}}return d}function displayPageviews(d,b){if(d===undefined){return}if($("#post-list").length>0){$(".post-preview").each(function(){var h=$(this).children("h1").children("a").attr("href");var g=countPV(h,d);g=(g==0?1:g);if(!b){$(this).find(".pageviews").text(g)}else{var f=parseInt($(this).find(".pageviews").text());if(g>f){countUp(f,g,$(this).find(".pageviews").attr("id"))}}})}else{if($(".post").length>0){var e=window.location.pathname;var c=countPV(e,d);c=(c==0?1:c);if(!b){$("#pv").text(c)}else{var a=parseInt($("#pv").text());if(c>a){countUp(a,c,"pv")}}}}}$(function(){if($(".pageviews").length>0){var a=false;$.getJSON("/assets/data/pageviews.json",function(b){displayPageviews(b.rows,a);a=true});$.getJSON("/assets/data/proxy.json",function(b){$.ajax({url:b.proxyUrl,dataType:"jsonp",timeout:2000,success:function(c){displayPageviews(c.rows,a)},error:function(e,c,d){console.log("Failed to load pageviews from proxy server.");e.abort();return}})})}});
|
function countUp(c,a,b){if(c<a){var d=new CountUp(b,c,a);if(!d.error){d.start()}else{console.error(d.error)}}}function countPV(f,e){var g=f.replace(/\/posts\//g,"").replace(/\//g,".html");var d=0;var c=f.replace(/posts\//g,"");for(var b=0;b<e.length;++b){var a=e[b][0];if(a==f||a==c||a.concat("/")==c||a.slice(a.lastIndexOf("/")+1)===g){d+=parseInt(e[b][1])}}return d}function displayPageviews(e){if(e===undefined){return}var b=getInitStatus();var d=e.rows;if($("#post-list").length>0){$(".post-preview").each(function(){var i=$(this).children("h1").children("a").attr("href");var h=countPV(i,d);h=(h==0?1:h);if(!b){$(this).find(".pageviews").text(h)}else{var g=parseInt($(this).find(".pageviews").text());if(h>g){countUp(g,h,$(this).find(".pageviews").attr("id"))}}})}else{if($(".post").length>0){var f=window.location.pathname;var c=countPV(f,d);c=(c==0?1:c);if(!b){$("#pv").text(c)}else{var a=parseInt($("#pv").text());if(c>a){countUp(a,c,"pv")}}}}}var getInitStatus=(function(){var a=false;return function(){if(a){return true}else{a=true;return false}}})();$(function(){if($(".pageviews").length>0){$.getJSON("/assets/data/pageviews.json",displayPageviews);$.getJSON("/assets/data/proxy.json",function(a){$.ajax({type:"GET",url:a.proxyUrl,dataType:"jsonp",jsonpCallback:"displayPageviews",error:function(b,d,c){console.log("Failed to load pageviews from proxy server: "+c)}})})}});
|
Loading…
Reference in a new issue