У меня есть интересная задача.
Мне нужно сделать кеширование страниц в базу данных (полная страница с исполняемым javascript). Я использую symfony2, и у меня есть идея, как я могу это сделать: вероятно, мне нужно wkhtmltopdf
каким-то образом использовать wkhtmltopdf
для рендеринга страницы и получить разметку html после выполнения javascript. Проблема в том, что это справедливо и идея, и я не знаю, как именно вы выполняете мою идею. Если у вас есть идея лучше, чем моя, я буду очень счастлив. Любая помощь будет оценена.
Чтобы быть более ясным: Давайте рассмотрим эту страницу:
<html>
<head>
stuff...
</head>
<body>
<div id="content">
</div>
</body>
<script>
for(var i = 0; i< 3; i++) {
$('#content').append('<p>'+i+'</p>');
}
</script>
</html>
и я хочу получить это:
<html>
<head>
stuff...
</head>
<body>
<div id="content">
<p>0</p>
<p>1</p>
<p>2</p>
</div>
</body>
</html>
Мне нужно, чтобы это произошло без участия клиентского браузера (это будет создано только на стороне сервера)
Вы отметили это с помощью wkhtmltopdf, вы попробовали? В командной строке выполните страницу с примером:
wkhtmltopdf.exe example.html example.pdf
Это должно в значительной степени работать на сервере без взаимодействия с клиентом вообще - остальное приложение - это проводка и опции (и много и много кода). Иногда вам нужно добавить - --javascript-delay 5000
или такой для более длительного запуска javascript. Что еще вам нужно на самом деле; это трудно сказать. Я бы начал с создания небольшого сайта макета и построения на нем этого, опробовав самые сложные и сложные случаи, которые могли бы быть нарушителями сделок.