[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с определением новой записи в бд
Akarapidoz
не буду загружать вас своим кодом
У меня есть функция, которая выводит в переменную количество новых записей.
При перезагрузке страницы эта функция замечательно срабатывает и выводит мне количество этих записей
Так вот... Как и миллиону разработчиков, мне хочется сделать чтобы без перезагрузки страницы мне говорилось, что появилась новая запись.
Проверка один раз в секунду для меня не подойдёт(
Буду рад абсолютно любой информации.
Особая благодарность, за пример решения моей проблемы)

p.s. Прошу прощения, если подобное уже тут рассматривалось, а я не увидел.


_____________
Прошу критиковать, если что-то не так.
Valick
comet технологии и еже с ними

_____________
Стимулятор ~yoomoney - 41001303250491
Aeq
google: javascript web socket
sergeiss
Цитата (Akarapidoz @ 8.12.2013 - 09:36)
Проверка один раз в секунду для меня не подойдёт

А почему, кстати? Проверка раз в 10-15 секунд - это вообще будет, по-твоему, "полный финиш"? smile.gif Ты предполагаешь, что у тебя будет настолько много новых данных, и тебе нужна такая оперативность, чтобы вообще мгновенно реагировало?

Кроме суперсовременных технологий, можно еще использовать "старый добрый iframe". Не самый лучший вариант, но рабочий на 100%.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Akarapidoz
Я так написал, потому что я реализовал подобный код с setInterval 30*1000.
реализовывал я это как-то так)
Напишу только для одного <span>
Если есть замечания всегда рад выслушать))

newmass.js
function newArticle(id){

$.ajax({

type: 'POST',
url: "mass.php",
data: {article: id},
error: function(req, text, error) {
alert('Ошибка AJAX: ' + text + ' | ' + error);
},
success: function (json) {
jxr_decode(json);
},
dataType: "json"

}
);

}
setInterval(newArticle, 30000)
// Функция для раскодировки JSON-ответа
function jxr_decode(json) {
for (i = 0; i < json.length; i ++) {
switch (json[i][0]) {
case 'span':

$("#"+json[i][1]).text(json[i][2]);

break;

}
}

}


Bootstrap.php

class Bootstrap {

function __construct() {
// запускаем сессию

session_start();
$controller = new Controller();
$contadm = new ControllerAdmin();
switch ($url[0]) {
case 'mass.php':

$contadm->getMass();

break;
и тд...}


ControllerAdmin.php
function getMass()
{
$view = new ViewAdmin();
if(isset($_SESSION['id_user']))
{
$model = new ModelAdmin();
$mod = $model->getMass();
$new_doc_r = $model->new_doc_r();
$new_doc_m = $model->new_doc_m();
$new_doc_r = count($new_doc_r);
$new_doc_m = count($new_doc_m);
$new_doc_all = $new_doc_r + $new_doc_m;
if ($new_doc_all==0){
$new_doc='';
}
else{
$new_doc = ' ('.$new_doc_all.')';
}

$view->showmass($mod, $new_doc);
}

else
{
$view->getLogin();
}

}


ModelAdmin.php

function new_doc_r(){
$id_user = $_SESSION['id_user'];
$doc_nazn = $_SESSION['prog_doc_role'];
$sql = 'SELECT progr_doc.id_doc FROM progr_doc
WHERE doc_nazn="'
. $_SESSION['prog_doc_role'] . '" AND doc_id_user_ispolnitel="' . $id_user . '"';

$stmt = $this->dbh->query($sql);
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}

function new_doc_r() подобная
ViewAdmin.php
function showmass($mod, $new_doc)  {
require 'views/admin/mass.php';
}


mass.php
echo json_encode(array(
array('span', 'con', $new_doc)));

и выводит всё в
<span id="con"></span>




реализовывал я это как-то так)

_____________
Прошу критиковать, если что-то не так.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.