우리는 사용자를 위해 SaaS를 만들고 웹 사이트 페이지에 첨부 할 스크립트를 제공했으며, 사용자가 기능을 위해 스크립트를 웹 사이트에 첨부 할 때 스크립트와 함께 버전을 첨부 할 수 없었습니다. 스크립트를 업데이트 할 때마다 버전을 변경하려면
따라서 사용자가 원본 스크립트를 호출 할 때마다 최신 버전의 스크립트를로드하는 방법을 찾았습니다.
사용자에게 제공된 스크립트 링크
<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 선택기를 사용하지 않고 스크립트에 첨부 된 고유 토큰이 있는지 확인한 다음 그렇지 않은 경우 최신 토큰 (또는 버전)으로 동적으로로드합니다
이것은 동일한 스크립트를 두 번 호출하여 성능 문제가 될 수 있지만 사용자 또는 클라이언트에게 제공된 실제 스크립트 링크에 버전을 넣지 않고 캐시에서 스크립트가로드되지 않도록하는 문제를 실제로 해결합니다.
면책 조항 : 귀하의 경우에 성능이 큰 문제 인 경우 사용하지 마십시오.