Я пишу приложение для визуализации содержимого нескольких баз данных. Это приложение должно быть максимально простым в установке и использовании, поэтому я решил использовать XML-файлы в качестве баз данных и соответствующим образом преобразовывать их с помощью XSL через браузер. Прямо сейчас файлы XSL запрограммированы на создание сводной таблицы каждой базы данных, и при нажатии на первую ячейку каждой строки появляется более полное описание всей записи. Это означает, что страница содержит все полные описания каждой записи в базе данных, но такая ситуация замедляет загрузку страницы, которая требует до 5 секунд для загрузки нескольких сотен записей. Поскольку в будущем я планирую значительно расширить базы данных, этой проблеме суждено стать намного хуже. Чтобы уменьшить нагрузку, следующий очевидный шаг - прибегнуть к какой-то отложенной загрузке либо с помощью AJAX, либо с помощью iframe (не очень важно, какой из них прямо сейчас, и не в этом вопрос), но я сталкиваюсь с некоторыми трудностями. Моя идея заключалась в том, чтобы напрямую вызвать файл XML следующим образом:
file:///path/to/file/transform.xml?id=23
С transform.xml:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="transform.xsl"?>
<content />
И transform.xsl:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xhtml="http://www.w3.org/1999/xhtml">
<xsl:output method="html" version="5" doctype-system="about:legacy-compat" indent="yes" />
<xsl:param name="url" />
<xsl:template match="/">
<html>
<body><xsl:value-of select="$url" /></body>
</html>
</xsl:template>
</xsl:stylesheet>
На данный момент это просто проверка концепции, но эта часть является краеугольным камнем для всего последующего и если она не работает, то и дальше так продолжать бесполезно.
Все, что я вижу в этот момент, это чистая страница. Я также пытался изменить имя параметра на id
, но страница остается пустой.
Я знаю, что этого можно легко добиться с помощью PHP или других серверных решений, а MySQL будет более эффективным, но мне действительно нужно, чтобы это приложение можно было использовать в тот момент, когда загрузка заканчивается. Если моим пользователям нужно будет установить сервер *AMP, они, вероятно, этого не сделают. Публичный сервер также не является решением, так как мне нужно, чтобы это приложение работало в автономном режиме. С другой стороны, решение JavaScript/jQuery вполне приемлемо, поскольку оно выполняется на стороне клиента.
Изменить: большая часть моей работы основана на этом вопросе, который, кажется, работает но он довольно старый, и пример содержит URL-адрес страницы ASP.