group by
, вероятно, не подходящий инструмент для работы. Вместо этого вы можете использовать rank
, чтобы найти верхнюю строку для каждой группы, и отфильтровать по ней:
SELECT date, id, qty
FROM (SELECT date, id, qty, RANK() OVER (PARTITION BY id ORDER BY date DESC) AS rk
FROM mytable) t
WHERE rk = 1
Вы - правильный Jaap, это связано с ограничением соединения Internet Explorer 2. По некоторым причинам IE не выпускает соединения с запросами Ajax, выполненными в закрывших окнах.
У меня есть очень похожая ситуация, незначительно более простая:
Одна техника, которую можно попробовать (упомянутый в статье Вы нашли), который, действительно кажется, работает, состоит в том, чтобы прервать запрос XmlHttp в разгрузить событии страницы.
Так что-то как:
var xhr = null;
function unloadPage() {
if( xhr !== null ) {
xhr.abort();
}
}
Другая опция состоит в том, чтобы использовать синхронные вызовы Ajax, которые заблокируются до возвратов вызова, по существу блокируя браузер. Это может или не может быть приемлемо, учитывая Вашу конкретную ситуацию.
// the 3rd param is whether the call is asynchronous
xhr.open( 'get', 'url', false );
Наконец, как упомянуто в другом месте, можно скорректировать максимальное количество соединений использование IE в реестре. Ожидая, что посетители Вашего сайта сделают, это однако не реалистично, и он на самом деле не решит проблему - просто задерживают его от случая. Как заметка на полях, IE8 собирается позволить 6 параллельных соединений.
Спасибо за ответ на Martijn.
Это не решило мои проблемы. Я думаю, что я вижу, лучше всего описан на этом веб-сайте: http://bytes.com/groups/javascript/643080-ajax-crashes-ie-close-window
В моей ситуации у меня есть нестабильное соединение или медленный веб-сервер и когда соединение является слишком медленным, и браузер и веб-сервер все еще имеют соединение, затем замораживается.
Internet Explorer по умолчанию только позволяет два параллельных соединения тому же веб-сайту в целях загрузки. При попытке разжечь больше, чем это, Т.Е. остановы до одного из предыдущих концов запросов, в которой точке завершится следующий запрос. Я верю (хотя я мог быть неправым), это было помещено на месте для предотвращения перегружающихся веб-сайтов со многими параллельными загрузками за один раз. Существует взлом реестра для хитрости этой блокировки.
Я нашел эти инструкции, перебрасывающие Интернет, который облегчил мои проблемы - я не могу обещать, что он будет работать на Вашу ситуацию, но мультиограничение соединения, с которым Вы сталкиваетесь, кажется связанным:
- Нажмите на Кнопку запуска и выберите Выполнение.
- На Выполнении строка вводит Regedt32.exe и совершает нападки, Входят. Это запустит Редактор реестра
- Найдите следующий ключ в реестре:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
- Нажмите на интернет-ключ настроек.
- Теперь войдите в меню Edit, укажите на НОВЫЙ
- нажмите DWORD Value
- Тип MaxConnectionsPer1_0Server для названия этого Значения DWORD.
- Дважды щелкните по ключу MaxConnectionsPer1_0Server, который Вы просто создали, и введите следующую информацию: данные Значения: 10. Основа: Десятичное число.
- При окончании нажимают OK.
- Повторите шаги 4 - 9. На этот раз, называя ключевой MaxConnectionsPerServer и присваивая ему те же значения, как обозначено на Шагах 8.
- При окончании нажимают OK
- Закройте редактор реестра.
Конечно, я использовал бы их в сочетании с аварийным прекращением работы () вызов, ранее упомянутый. В тандеме они должны устранить проблему.
Ошибка Winsock 12002 означает следующее согласно MSDN
ERROR_INTERNET_TIMEOUT
12002
The request has timed out.
Winsock является базовым объектом передачи сокета для XMLHTTP в IE так любая ошибка, это не находится в диапазоне Ошибки HTTP (300,400,500 и т.д.), почти всегда winsock ошибка.
То, что не было ясно из Вашего вопроса, - запрашивается ли тот же ресурс в 2-й раз вокруг. Вы могли вызвать новый некэшируемый ресурс путем добавления:
'?uid=+'Math.random()
К URL, который мог бы решить проблему.
другое решение могло бы состоять в том, чтобы присоединить функцию к "onbeforeunload" событию на объекте окна для вызова аварийного прекращения работы () любым активным запросом XMLHTTP непосредственно перед тем, как окно B закрывается.
Надеюсь, что эти 2 указателя решают Вашу ошибку.