- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Приветствую! Делаю телегу сабжем.
Демо тут: http://www.pechati-m.ru/samonabornik/
Как работает: жмем купить, запрос идет в php, при помощи php в сессию передается массив с id товаров. От php возвращается готовый html для информера корзины, и html для самой корзины которая по умолчанию не видна.
На при проверке на хостинге появляется лаг.
В чем лаг:
1. Щелкая на Купить, информер то обновляется, то нет, но в сессию все нужные данные заносятся. 2. Открыв корзину и щелкая Удалить, таже песня.
3. Открыв корзину и щелкнув Очистить корзину - таже песня.
Этот лаг проявляется не всегда, на локальном серваке оч. редко, на хостинге чаще.
Код Ajax.Updater:
function manageCart(task,item,vol) {
var url = 'managecart.php';
var params = 'task=' + task + '&item=' + item + '&vol=' + vol;
var ajax = new Ajax.Updater(
{success: 'cart_content'},
url,
{method: 'get', parameters: params, onFailure: reportError});
}
function reportError(request) {
$F('cart_content') = "An error occurred";
}
function previewCart(task) {
var url = 'managecart.php';
var params = 'preview=' + task;
var ajax = new Ajax.Updater(
{success: 'preview_cart'},
url,
{method: 'get', parameters: params, onFailure: reportError1});
}
function reportError1(request) {
$F('preview_cart') = "An error occurred";
}
Код managecart.php:
header('Content-type: text/html; charset=windows-1251');
require_once("fns_main.php");
include("cart.class.php");
session_start();
$items = $_SESSION["cart"];
$cart = new Shopping_Cart($items);
// Retrieve the parameters
$task = $_GET['task'];
$item = $_GET['item'];
$volume = $_GET['vol'];
$preview = $_GET['preview'];
if ($task == "add") {
$cart->addToCart($item,$volume);
$_SESSION["cart"] = $cart->getCart();
//echo "Add";
viewCart();
} elseif($task == "delete") {
$cart->deleteFromCart($item,$volume);
$_SESSION["cart"] = $cart->getCart();
viewCart();
}
elseif($task == "clear") {
unset($_SESSION["cart"]);
//echo 'Cart empty!';
viewCart();
}
if($preview == "preview_cart") {
$_SESSION["cart"] = $cart->getCart();
preview_cart();
}
cart.class.php
class Shopping_Cart {
private $cart;
function __construct($cart="") {
$this->cart = $cart;
}
function getCart() {
return $this->cart;
}
function addToCart($item, $volume) {
//echo $volume;
if(isset($this->cart[$item])) {
for ($i = 1; $i <= $volume; $i++)
{
$this->cart[$item]++;
}
} else {
$this->cart[$item] = 1;
}
}
function deleteFromCart($item, $volume) {
//echo $volume;
if(isset($this->cart[$item])) {
for ($i = 1; $i <= $volume; $i++)
{
$this->cart[$item]--;
}
if($this->cart[$item] == 0) {
unset($this->cart[$item]);
}
}
}
}
... и т.д.
Прошу помощи! =)
А что в логах ?
В логах сервака все пучком никаких ошибок нет одни 200 =)
Дублируйте в лог-файл всё, что отдате клиенту по ajax запросу. Причём - разные файлы для разных запросов (). Включите error_reporting(E_ALL); Смотрите в firebug ход выполнения запросов (надо отметить опцию ShowXMLHTTPRequest), и делайте POST запросы - проще анализировать.
Спасиб за советы, сейчас попробую для разных запросов разные файлы. Скажите, а существует ли внятное руководство по этой библиотеке на русс. типа Prototype for Dummies?
Turtle_Fly, http://kropp.spb.ru/docs/prototype/
Ну вроде разобрался. Сделал запросы к разным скриптам, но все равно есть лаг, но уже другого вида. В опчем есть такая проблема как - Задержка (Latency). Т.е. даже если я обращаюсь к разным скриптам из разных функций, задержка все равно будет и возможны глюки.
Кому интересно тут http://ru.sun.com/java/ajax_faq/index.html#usability и тут http://richui.blogspot.com/2005/09/ajax-latency-problems-myth-or-reality.html
В общем подлечил, использовав таймер на функцию которая у меня срабатывает всегда (Апдейт информера телеги). В идеале наверное стоит на все функии, подгружающие данные, поставить свой таймер. Колдую дальше. ☝