Вы должны денормализовать данные. Добавить поле в Tag
для dateLastUsed
и отсортировать по нему. Обновите это, когда сообщение помечено. В зависимости от требований к вашему продукту вам также может потребоваться обновить его, когда тег будет удален из публикации. В этом случае вам нужно будет просмотреть все сообщения тега и назначить dateLastUsed
самых последних из этих сообщений.
Также вы сказали: «... для каждого извлеченного тега выполните дополнительное извлечение его сообщений». Вы НИКОГДА не должны получать сообщения тега или теги сообщения, но ВСЕГДА используйте связь. Отношения на порядки быстрее.
Править: Я неправильно понял Ваш вопрос первоначально, это должно работать:
Также отметьте, это должно пойти ПЕРЕД любым JavaScript, который мог бы вызвать ошибки.
window.onerror = function(msg,u,l)
{
txt ="Error: " + msg + "\n";
txt+="URL: " + u + "\n";
txt+="Line: " + l + "\n\n";
//Insert AJAX call that passes data (txt) to server-side script
return true;
};
Что касается синтаксических ошибок, Вам не повезло. JavaScript просто умирает, когда существует синтаксическая ошибка. Нет никакого способа обработать его вообще.
Я не уверен в синтаксических ошибках, но возможно зафиксировать js ошибки с помощью window.onerror событие. Поиск "регистрирующихся ошибок в JavaScript" в Google дает Вам много результатов...
Вход ошибок JavaScript На ASP.NET: http://james.newtonking.com/archive/2006/05/02/Logging-JavaScript-Errors-To-ASP.NET.aspx (К сожалению, связь для загрузки в сообщении разорвана).
Вход клиентских ошибок JavaScript к серверу: http://www.codeproject.com/KB/ajax/logclientsidejserrors2srv.aspx
Уведомления об ошибке JavaScript: http://www.thecodepage.com/post/JavaScript-Error-Notifications.aspx
Одна техника состоит в том, чтобы использовать Ajax для входа ошибки JavaScript
Каждая ошибка JavaScript может быть захвачена в window.onerror событии. Мы можем возвратить TRUE или FALSE, таким образом, мы можем выбрать, если пользователь должен видеть нормальное диалоговое окно ошибки JavaScript. Этот сценарий, в очень маловероятном событии ошибки JavaScript, соберет информацию об ошибке и отправит httprequest в страницу, которая зарегистрирует ошибку JavaScript к базе данных.
window.onerror = MyFunction (сообщение, URL, строка);
мы открываемся окно с деталями ошибки, тип браузера (т.е. navigator.userAgent), и т.д. все в полях, отмеченных ТОЛЬКО ДЛЯ ЧТЕНИЯ и привлекательный пользователь для Представления их.
У нас есть флажок "Do not show this again", который хранится в сеансовых куки - поэтому, если они продолжают получать ошибки, чем может отключить Всплывающее окно.
Несмотря на то, что мы думали, что это было "хорошо прохладно", мы получаем очень немного отчетов - и я не убежден, что это вызвано тем, что мы рядом для обнуления ошибок периода выполнения!
Вероятно, лучше всего отправить только одно сообщение об ошибке на страницу. Если Вы получаете ошибку на повторяющемся таймере, или сам Ajax рекурсивно называет ошибку, можно закончить тем, что заполнили журнал бесполезным спамом.
Кроме того, быть готовым получить неразрешимые ошибки, вызванные вещами как: