私たちはユーザー向けのSaaSを作成し、Webサイトのページに添付するスクリプトを提供していますが、ユーザーが機能用にスクリプトをWebサイトに添付するため、スクリプトを使用してバージョンを添付することはできず、強制することはできません。スクリプトを更新するたびにバージョンを変更するには
そこで、ユーザーが元のスクリプトを呼び出すたびに新しいバージョンのスクリプトをロードする方法を見つけました
ユーザーに提供されるスクリプトリンク
<script src="https://thesaasdomain.com/somejsfile.js" data-ut="user_token"></script>
スクリプトファイル
if($('script[src^="https://thesaasdomain.com/somejsfile.js?"]').length !== 0) {
init();
} else {
loadScript("https://thesaasdomain.com/somejsfile.js?" + guid());
}
var loadscript = function(scriptURL) {
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = scriptURL;
head.appendChild(script);
}
var guid = function() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
}
var init = function() {
// our main code
}
説明:
ユーザーがウェブサイトで提供されたスクリプトを添付し、jQueryセレクターを使用して、スクリプトが添付されている一意のトークンが存在するかどうかを確認し、存在しない場合は新しいトークン(またはバージョン)で動的にロードします
これは同じスクリプトを2回呼び出すため、パフォーマンスの問題となる可能性がありますが、ユーザーまたはクライアントに与えられた実際のスクリプトリンクにバージョンを入れずに、スクリプトがキャッシュから読み込まれないようにするという問題を本当に解決します
免責事項:あなたのケースでパフォーマンスが大きな問題である場合は使用しないでください。