Когда у меня есть переменная, определенная в контексте сервера, иногда мне нужно использовать ее в контексте javascript; например идентификатор сеанса.Как определить переменную сервера в контексте javascript?
Каков наилучший способ сделать это?
Я хочу отдельных файлов JavaScript и просматривать файлы (в моем случае jsp
); на данный момент я нашел 2 способа:
) myVariables.js.jsp
: создать файл JSP, который возвращает код JavaScript
myLib = {
sessionID: "${sessionId}",
[...]
}
и импортировать его как JavaScript в файл вида JSP:
<html>
<head>
<script src="myVariables.js.jsp"></script>
[...]
</head>
<body>
[...]
</body>
</html>
Я могу получить идентификатор сеанса: myLib.sessionId
.
Прос: удобный и быстрый.
Против: напишите файл jsp
, который является js
.
) Сохраните переменный сервер в скрытые поля ввода (например, в основной части шаблона):
<html>
<head>
<script src="myLib.js"></script>
[...]
</head>
<body>
<form id="myVariables">
<input type="hidden" name="sessionId" value="${sessionId}" />
[...]
</form>
[...]
</body>
</html>
Я могу получить идентификатор сессии, пишущий определенную функцию в myLib.js
библиотека:
myLib = {
sessionId: function() {
return $("form#myVariables > input[name=sessionId]").val();
},
[...]
}
Pros: JavaScript и просмотреть полностью разделены.
Против: больше кода для написания; немного сложнее понять, чем предыдущий.
В моих глазах это «прежде всего вопрос, основанный на мнениях». Потому что оба пути имеют плюсы и минусы. Кстати, в прошлом я часто выбирал ваш второй путь, потому что он генерировал более чистый код (на моих глазах). – reporter