#javascript #html #css #redirect #dynamic
#javascript #HTML #css #перенаправление #динамический
Вопрос:
В настоящее время я работаю над веб-приложением, которое требует очень небольшой задержки на стороне клиента. Веб-приложение состоит из трех основных частей (вход, просмотр элементов, оформление заказа).
В настоящее время состояние кода выглядит примерно так.
signIn.html
<head>
<link rel="stylesheet" href="css/signIn.css" />
<script src="js/vendor/modernizr.js"></script>
<script src="js/vendor/jquery.js"></script>
<script src="js/init.js"></script>
</head>
<body>
some HTML body....
</body>
<script>
some javascript that appends stuff to the DOM and makes ajax calls
</script>
viewItems.html
<head>
<link rel="stylesheet" href="css/viewItems.css" />
<script src="js/vendor/modernizr.js"></script>
<script src="js/vendor/jquery.js"></script>
<script src="js/init.js"></script>
</head>
<body>
some HTML body....
</body>
<script>
some javascript that appends stuff to the DOM and makes ajax calls
</script>
checkout.html
<head>
<link rel="stylesheet" href="css/checkout.css" />
<script src="js/vendor/modernizr.js"></script>
<script src="js/vendor/jquery.js"></script>
<script src="js/init.js"></script>
</head>
<body>
some HTML body....
</body>
<script>
some javascript that appends stuff to the DOM and makes ajax calls
</script>
(init.js выше приведены некоторые проверки, такие как вход пользователя в систему и т.д.)
Как вы можете видеть, каждый следующий файл имеет очень похожий формат, но имеет разные связанные с ним функции HTML, CSS и Javascript. Каждый файл также имеет init.js , который в основном выполняет проверку, чтобы увидеть, вошел ли пользователь в систему (и другие проверки безопасности).
После init.js выполнив проверки, он перенаправит пользователя либо на checkout, signIn, либо на viewItems. Чтобы увеличить скорость веб-приложения, я хотел устранить перенаправления страниц, поэтому я подумал о динамической загрузке javascript, html и css, привязанных к файлу. Я наткнулся на эту статью, в которой указывается, что то, что я пытаюсь сделать, возможно. :
http://www.javascriptkit.com/javatutors/loadjavascriptcss.shtml
Цель состоит в том, чтобы код выглядел примерно так:
index.html псевдокод
<head>
<script src="js/vendor/modernizr.js"></script>
<script src="js/vendor/jquery.js"></script>
<script src="js/init.js"></script>
</head>
<script>
if(user == signedIn)
load viewItems.html
load viewItems.css
load viewItems.js
else if(user != signedIn)
load signin.html
load signin.css
load signin.js
</script>
<body>
</body>
Мои основные вопросы заключаются в том, что будет ли это делать таким образом (удаляясь от перенаправления), значительно увеличит скорость (как загрузка элементов в теге head, так и init.js выполнение проверок выполняется только один раз, в отличие от загрузки при каждом перенаправлении пользователя). Или это спорный вопрос, так как увеличение скорости будет незначительным, и мне все равно лучше перенаправить пользователя.
Комментарии:
1. упс, да, это должен был быть псевдокод, но спасибо
Ответ №1:
Я не знаю точного ответа, потому что существует так много переменных, которые влияют на вашу скорость, но вот что я бы сделал.
В зависимости от ваших временных ограничений вы можете попробовать оба варианта (перенаправление и динамическую загрузку) и настроить тест скорости, чтобы определить, какой из них быстрее (конечно, вам придется учитывать местоположение, компьютеры, браузеры и т. Д. Ваших основных пользователей).
Кроме того, рассмотрите возможность сокращения файлов javascript и css для повышения производительности и объединения js и css в 2 файла (быстрее загрузить один большой файл js, чем 10 маленьких файлов js). В принципе, храните файлы отдельно для кодирования (это упрощает) и объединяйте их в один новый файл при развертывании веб-сайта.
Просто поищите в Google: существует множество инструментов, помогающих тестировать скорость и сжимать / объединять ваши файлы js и css.