Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.02.2016, 19:29
Аспирант
Отправить личное сообщение для Ambassador Посмотреть профиль Найти все сообщения от Ambassador
 
Регистрация: 12.11.2015
Сообщений: 68

Остановка обращений к файлу при помощи аякс запроса
Здравствуйте.
Реализовываю рассылку с сайта, при помощи js вызываю файл в котором выборки на php и отправка писем. Сам js файл выглядет так:
/*По нажитию кнопки вызываю фун. в котоую передаю 1*/
$(document).ready(function(){
	$('#start_upload_vac').on('click',function(){
		$('#start_upload_vac').val('Загрузка ...').attr('disabled',true);

		scriptOffset('1');

	});
});

function showProcess(PAGE) {
      scriptOffset(PAGE);
}
/*Делаю аякс запрос к файлу test.php с выборками и отправкой писем*/
function scriptOffset(PAGE) {

	$.ajax({
		type: 'GET',
		url: '/test/test.php?PAGE='+PAGE,
		dataType: 'json',
		success: function(request) {
          if(request.end == 'Y') {
                          
		$('#logs').html('<a class="show_log" rel="add" target="_blank" href="/test/logs.php">Логи рассылки акций</a>');
	} else {
                                 
		showProcess(request.PAGE);
	}
			
		} 
	});
}


В самом файле test.php после всех выборок и отправки писем делаю так:
$PAGE = (isset($_GET['PAGE']) && intval($_GET['PAGE']) > 0) ? intval($_GET['PAGE']) : 1;
/*Выборки и отправка писем*/
if($count > $PAGE) {
        $PAGE++;
        echo json_encode(array('PAGE'=>$PAGE));
        } else {
           echo json_encode(array('end'=>'Y'));	
	}

Где $count число писем которое необходимо отправить.
Т.е каждое письмо на отправку это вызов файла test.php
Все вроде бы ничего, пока не дойдет до значения в 1183 (скрин во вложении) и останавливается, т.е отправка всех писем не доходит до конца. Сама отправка тоже не причем так как даже без нее кол-во обращений к файлу останавливается. Реализовываю именно таким метотодом по причине того что необходимо отправлять примерно 50000 писем. Подскажите из за чего может возникать такая проблема?Как исправить?
Заранее спасибо!
Изображения:
Тип файла: jpg ScreenShot696.jpg (61.2 Кб, 2 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 17.02.2016, 19:37
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Ambassador
Все вроде бы ничего, пока не дойдет до значения в 1183...
Реализовываю именно таким метотодом по причине того что необходимо отправлять примерно 50000 писем.
И хостер ваш еще вам втык не дал за такую рассылку?

Рассылки нужно производить планировщиком задач, по расписанию не нагружая порт.
Ответить с цитированием
  #3 (permalink)  
Старый 17.02.2016, 19:54
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Ambassador,
Типично весь пакет писем с клиента(или часть пакета, обычно ограничивают 600 -700 кб)
упаковывают в один файл и отправляют на серв, а серв разбирает пакет и уже сам отправляет)
Ответить с цитированием
  #4 (permalink)  
Старый 22.02.2016, 18:32
Аспирант
Отправить личное сообщение для Ambassador Посмотреть профиль Найти все сообщения от Ambassador
 
Регистрация: 12.11.2015
Сообщений: 68

Ребят, проблема заключается не в самом кол-ве отправке писем, а в том что кол-во обращений к файлу при помощи ajax прерывается на 513
Ответить с цитированием
  #5 (permalink)  
Старый 22.02.2016, 18:38
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Ambassador,
Допустимых одновременных необработанных ассинхронных Аякс запросов с домена из браузера - не более 5. Возможно есть и ограничения по общему числу запросов за какой-то интервал времени, которое ксать может быть и на провайдере
Вы вытворяете черт знает что и спрашиваете почему на 513 затыкается.
Еще раз: собирайте письма в пакеты по 500-600 кб - отправляйте одним запросом, дожидайтесь ответа(т.е тестируете событие ajaxComplete, после которого следущий запрос. Можно конечно отправить синхронно, но 500-600кб повесит Ваш браузер типично на время более одной секунды.

Последний раз редактировалось Deff, 22.02.2016 в 18:51.
Ответить с цитированием
  #6 (permalink)  
Старый 22.02.2016, 19:15
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Цитата:
Можно конечно отправить синхронно, но 500-600кб повесит Ваш браузер типично на время более одной секунды.
а если в фоновом режиме посылать запросы?
Ответить с цитированием
  #7 (permalink)  
Старый 22.02.2016, 19:29
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от destus
а если в фоновом режиме посылать запросы?
Рассылку нужно отправлять планировщиком задач севера, клиентский же интерфейс нужен лишь для того, чтобы выбрать источник сообщений, указать параметры отправки. Отправлять в реальном режиме времени, ожидая окончания оправки, клиентом да еще 50000, это самоубийство.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переход по ссылке при помощи правой кнопки мыши. SERGEY_121 Общие вопросы Javascript 3 02.11.2015 00:14
Объединение 2ух объектов полученных при помощи XMLHttpRequest PawelGil AJAX и COMET 12 23.08.2015 12:56
Обратная связь ПРИ ПОМОЩИ JavaScript qwertypop Элементы интерфейса 2 23.04.2009 18:30
изменение рисунка в меню при помощи Javasripta Maxim Общие вопросы Javascript 1 05.09.2008 14:59
Подскажите как при помощи JS hta в трею свернуть kimboo Общие вопросы Javascript 4 11.07.2008 16:00