]> git.mxchange.org Git - friendica.git/commitdiff
hovercard: cache raw content of the template so we don't have to request it everytime...
authorrabuzarus <>
Thu, 5 May 2016 21:48:52 +0000 (23:48 +0200)
committerrabuzarus <>
Thu, 5 May 2016 21:48:52 +0000 (23:48 +0200)
js/hovercard.js

index 1ca07ffabfd42869f431bd0bd09aca4f8a5bfc3b..0fccebc34b3d65f9af574604dca060d6fdff7c2f 100644 (file)
@@ -85,7 +85,6 @@ $(document).ready(function(){
 });
 
 
-
 // hover cards should be removed very easily, e.g. when any of these events happen
 $('body').on("mouseleave touchstart scroll click dblclick mousedown mouseup submit keydown keypress keyup", function(e){
        var timeNow = new Date().getTime();
@@ -196,6 +195,7 @@ function getHoverCardContent(term, url, callback) {
 //     });
 }
 
+
 // Ajax request to get the raw template content
 function getHoverCardTemplate (url, callback) {
        var postdata = {
@@ -203,14 +203,24 @@ function getHoverCardTemplate (url, callback) {
                datatype: 'tpl'
        };
 
+       // Look if we have the template already in the cace, so we don't have
+       // request it again
+       if('hovercard' in getHoverCardTemplate.cache) {
+               setTimeout(function() { callback(getHoverCardTemplate.cache['hovercard']); } , 1);
+               return;
+       }
+
        $.ajax({
                url: url,
                data: postdata,
                success: function(data, textStatus) {
+                       // write the data in the cache
+                       getHoverCardTemplate.cache['hovercard'] = data;
                        callback(data);
                }
-       });
+       }).fail(function () {callback([]); });
 }
+getHoverCardTemplate.cache = {};
 
 // The Variables used for the template
 function getHoverCardVariables(object) {