В фоне конечно кроном, а так, я бы заменил simple html dom на https://github.com/rmccue/Requests + code.google.com/p/phpquery, вроде было про них и на хабре. Если вы хотя бы поверхностность знакомы с python, то там есть очень удобная штука для парсинга grab
В своё время нашёл ответ на такой же вопрос на stackoverflow, там писали, что будет в css4 (пример). Так что проще скриптом, потому что, если вы найдёте какой-нибудь хитрый хак, то трудозатраты не окупятся.
Простой ajax-запрос, а websocket, в основном, для обратной задачи - когда нужно с сервера передать какую то команду на открытую страницу, а страница уже дёргает данные по ajax с сервера. Это, конечно, если вы не пишите что то типа онлайн чата.
Не используйте * в селекте, а выводите то, что вам нужно и всё будет ok. Плюс table1`.`table1-id` = `table2`.`table1-id` - вы точно поля не перепутали?