Какова наилучшая практика разработки веб-страниц для страниц без JS и JS?Я занимаюсь разработкой веб-приложения Spring MVC с использованием JSP / JSTL в качестве технологии просмотра.
То, как я работаю, заключается в создании полной веб-страницы (с тегами "html", "head" и т. Д.).Это будет работать во всех браузерах.Все мое приложение работает (хотя и уродливо) с отключенным JS.
Также на каждой странице есть некоторый скрипт jQuery, который предварительно настраивает страницу, обычно превращая «div» верхнего уровня в вкладки, другие div в диалоги,и т.д. JS «захватывает» базовый HTML.Мой JS перехватывает ссылки и кнопки, используя вызовы AJAX для загрузки содержимого в правильный диалог или раздел вкладок.
Это все работает хорошо, и мне нравится архитектура, но я добавил оптимизацию, такую, что AJAX запрашиваетдобавляет параметр "contentOnly";это выбирается представлением Spring MVC, которое условно игнорирует «голову» и т. д., т. е. оно отображает только реальный контент, который хочет версия AJAX.Это просто кажется неуклюжим.
Я знаю, что мог бы загрузить всю страницу и удалить внешние биты, но это кажется неэффективным для загрузки всех связанных файлов CSS и JS, которые не являются строго необходимыми.
Мой вопрос: есть лилучший способ написать это условное форматирование, если я использую другую технологию представления или что-то еще, что-то вроде Velocity или FreeMarker или что-то еще, что использует Grails?
Пример моего условного: -
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<c:if test="${param.contentOnly == null}">
<!DOCTYPE html>
<html>
<head>
<%@ include file="_stylesAndScripts.jsp"%>
<title>My App Title</title>
</head>
<body>
<%@ include file="_header.jsp"%>
<%@ include file="_menu.jsp"%>
</c:if>
<div id="leadListPanel" class="contentPanel">
<h1>My App Title</h1>
<p>The time on the server is ${serverTime}.</p>
<table id="leadTable" class="list">
... rest of content...
<c:if test="${param.contentOnly == null}">
<%@ include file="_footer.jsp"%>
</body>
</html>
</c:if>