Этот фрагмент кода хорошо работает на локальном хосте, но не работает на сервере.После многократного обновления j запрос загружается правильно, затем работает как положено.jQuery загружается асинхронно при загрузке страницы и занимает больше времени для загрузки страницы.
как заставить jQuery загружаться правильно без обновления страницы и как уменьшить время загрузки для всех сценариев, которые находятся в конце страницы
<noscript id="async-styles"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css"> <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous"> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.4/css/bootstrap-datepicker.css" /> <link rel="stylesheet" type="text/css" href="css/style.css" /> <link rel="stylesheet" href="css/star-rating.min.css"> <link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-switch/3.0.1/css/bootstrap3/bootstrap-switch.css" rel="stylesheet" crossorigin="anonymous"> </noscript> <script> // The CSS mentioned in "async-styles" will be loaded and styles will be applied. var loadDeferredStyles = function() { var addStylesNode = document.getElementById("async-styles"); var replacement = document.createElement("div"); replacement.innerHTML = addStylesNode.textContent; document.body.appendChild(replacement) addStylesNode.parentElement.removeChild(addStylesNode); }; var raf = requestAnimationFrame || mozRequestAnimationFrame || webkitRequestAnimationFrame || msRequestAnimationFrame; if (raf) raf(function() { window.setTimeout(loadDeferredStyles, 0); }); else window.addEventListener('load', loadDeferredStyles); </script> <script async src="js/jquery-3.2.1.min.js" onLoad="loadOtherScripts();"></script> <script> function loadScript(src) { return new Promise(function (resolve, reject) { var s; s = document.createElement('script'); s.src = src; s.onload = resolve; s.onerror = reject; document.head.appendChild(s); }); } function loadOtherScripts() { loadScript('js/moment.min.js') .then(function() { Promise.all([ loadScript('https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.3.0/js/bootstrap-datepicker.js'),loadScript('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js'),loadScript('js/daterangepicker.js'),loadScript('js/star-rating.min.js'),loadScript('js/sidebar.js'),loadScript('https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.9.1/jquery.tablesorter.min.js'),loadScript('https://cdnjs.cloudflare.com/ajax/libs/bootstrap-switch/3.0.1/js/bootstrap-switch.js')]).then(function () { intialFunction(); }).catch(function (error) { // console.log('some error!' + error) }) }).catch(function (error) { // console.log('Moment call error!' + error) }) } </script>
вместо того, чтобы загружать все необходимое по одному, мы можем минимизировать и связать его и загрузить за один раз.Это уменьшит размер и круговую передачу по сети для каждого сценария.