Hi,
ich hab aktuell das Problem, das meine JSLink-Scripts manchmal nicht geladen werden, wenn ein Nutzer die Seite aufruft. Ich kann leider kein Standard-Verhalten feststellen, wann dies geschieht. Mit der Entwickler-Konsole offen klappt es immer (da ja dann
die Scripte und Ausführungen "verlangsamt" werden).
Mein Aufbau der Scripte ist so gewählt, das auf jeder SiteCollection nur das "Loader" Script hinterlegt werden muss mit individueller Config-Möglichkeit. Das Script lädt dann aus der zentralen Start-Seite das Hauptscript. Dies soll Anpassungen
an einer zentralen Stelle ermöglichen, ohne dass die Scripte auf den Servern abgelegt werden müssen (da ich auch keinen Zugriff auf die Server habe / haben möchte).
Hier ein Beispiel:
(function(){
var scriptKey = "TagCloudSource.js";
var scriptLink = "/Scripts/Source/TagCloud/TagCloudSource.js";
SP.SOD.executeFunc("clienttemplates.js", "SPClientTemplates", function(){
SP.SOD.registerSod(scriptKey,scriptLink);
SP.SOD.executeFunc(scriptKey, null, function(){
console.log("ScriptOnDemand loaded: " + scriptKey);
});
});
/* config part */
SP.SOD.executeOrDelayUntilScriptLoaded(function () {
MyNamespace.TagCloud.tagCloudTitle = "Top Tags für '{0}'"; // title for each tag cloud based on field name
MyNamespace.TagCloud.tagDelim = ' | '; // delimiter between the tags
MyNamespace.TagCloud.tagAutoSize = true; // calculated size for each tag depending on occurrence
MyNamespace.TagCloud.ListTemplateType = 850; // 850 --> Pages library
MyNamespace.TagCloud.showTagCount = true; // Display total count for each tag
MyNamespace.TagCloud.RegisterTemplate();
}, scriptKey);
})();
Die eigentlichen Scripte haben dann immer als letzte Zeile folgendes im Bauch:
// notify final script load
SP.SOD.notifyScriptLoadedAndExecuteWaitingJobs("TagCloudSource.js");
Ich vermute es liegt an dem Aufruf
SP.SOD.executeFunc("clienttemplates.js", "SPClientTemplates", function(){
Hat jemand ähnliche Konstrukte?
Kennt jemand einen funktionierenden Workaround?
Danke euch!