Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
1 / 1 / 0
Регистрация: 17.03.2013
Сообщений: 21

Оповещение на Ajax

29.07.2014, 18:06. Показов 2051. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, мне нужна помощь. Создал скрипт, который проверяет базу данные на добавление новых записей (сообщение), потом проверяется, если новое сообщение, то выводится оповещение и скрывается, проблема в том, что слишком часто отправляется запрос к БД, боюсь, что слишком большая нагрузка на сервер будет. Помогите реализовать код для лучше работоспособности.
Сейчас покажу код, который я написал.
index.html
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<html>
<head>
<title>Страница проверки сообщений</title>
<script type="text/javascript" src="jquery.js"></script>
<link href="http://fonts.googleapis.com/css?family=Press+Start+2P&amp;subset=latin,cyrillic" rel="stylesheet" type="text/css">
</head>
<body>
<script type="text/javascript">
function checkNewOrders()
{
    jQuery.ajax({
        url:        'new_order.php',
        cache:  false,
        type:       'POST',
        dataType:   'html',
        data:       'action=new-order-check',
        beforeSend: function() {
            $('#new-order-sound').html('');
        },
        success: function(response) {
            response = $.trim(response);
            $('#new-order-sound').html(response);
            if (response == 'new_order_yes') {
                $('#new-order-sound').html('<audio style="display:none;" autoplay="autoplay"><source src="sound.ogg" type="audio/; codecs=vorbis"><source src="sound.mp3" type="audio/mpeg"></audio>');
                $('#new-order').animate({
                    opacity: 1,
                    top: "5",
                  }, 1000, function() {
                    
                    $('#new-order').data('timeout', setTimeout( function () {
                    $('#new-order').animate({
                        opacity: 0,
                        top: "-65"
                    },1000);}, 2000));
                  });
            }
        },
        error: function(response) {
        }
    });
}
setInterval(function() { checkNewOrders(); } , 5000);
</script>
<div id="new-order-sound"></div>
<a href="#"><div id="new-order" style="opacity:0;position: absolute;top:-65px;background: url('img.png');width: 320px; height: 64px;">
    <p style="margin:0; padding: 0; color: #FFFF00;margin-left: 60px;margin-top: 15px; font-size: 9pt; font-family: 'Press Start 2P', cursive;">Вам пришло сообщение</p>
    <p style="margin: 0; padding: 0; margin-left: 60px;margin-top: 5px;font-size: 10pt;font-family: 'Press Start 1P', cursive; color: #fff;">Проверьте ваши сообщения.</p>
</div></a>
</body>
</html>
------------------
new_order.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
require_once('dbconfig.php');
function setNewOrder($message)
{
    $result = false;
    $fp = fopen('new_order.txt', 'w');
    if (fwrite($fp, $message))
        $result = true;
    fclose($fp);
    return $result;
}
 
function checkNewOrder()
{
    $result = false;
    $sql = mysql_query("SELECT * FROM im WHERE status_im='0'");
    $row = mysql_fetch_assoc($sql);
    if($row){
        $result = true;
    }
    $sql = mysql_query("UPDATE im SET status_im='1'");
    return $result;
}
 
 
if ($_POST['action'] == 'new-order')
{
    setNewOrder('New order');
}
 
if ($_POST['action'] == 'new-order-check')
{
    if (checkNewOrder())echo "new_order_yes";
}
?>
-------------
input.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
<form action="#" method="post">
<input type="text" name="text" />
<input type="submit" name="go" value="Отправить" />
</form>
<?php
require_once('dbconfig.php');
if(isset($_POST['go'])){
$message = $_POST['text'];
$sql = mysql_query("INSERT INTO im VALUE('','$message','0')");
$result = true;
}
?>
----------
Ну и подключение к БД
PHP
1
2
3
4
5
6
7
8
9
10
<?php
$mysql_hostname = "localhost";
$mysql_user = "root";
$mysql_password = "";
$mysql_database = "demo";
 
$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die("Could not connect database");
mysql_select_db($mysql_database, $bd) or die("Could not select database");
 
?>
Прошу помочь!)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.07.2014, 18:06
Ответы с готовыми решениями:

После вставки ответа ajax в input запроса, ответ ajax не изменяется
Здравствуйте! В общем так, есть поле input, есть таблица с полем count. Задача: изменить содержимое поле count по средством ajax, но при...

Ajax загрузка формы из загруженного через ajax блока
Вообщем, через ajax в блок подгружается форма, из нее нужно загрузить в этот же блок др.контент. $('#form').submit(function(e){ ...

Оповещение о новом сообщении
Пытаюсь сделать систему оповещения о новых сообщениях. Пока сделано с помощью перезагрузки страницы. Подскажите, как сделать с помощью...

1
61 / 61 / 12
Регистрация: 11.12.2009
Сообщений: 248
30.07.2014, 18:00
Ну так поставьте больше времени в setInterval.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.07.2014, 18:00
Помогаю со студенческими работами здесь

Оповещение о незаполненном поле
Мне нужно сделать чтобы при отправке пустого сообщения выводилось сообщение над формой отправки &quot;Сообщение не может быть пустым&quot;,...

Ajax запрос в div с уже 'прилетевшим' ajax'om
Добрый день, ребят... Не нашёл отдельного раздела по ajax, а разобраться очч надо, т.к.в JS полный профан. Никак не могу разобраться уже...

Звуковое оповещение при обновлении текста
Всем привет! Я Новеньки, строго не судить... Есть вопрос: У меня скрипт: &lt;a id=&quot;content&quot;&gt;&lt;/a&gt; &lt;script&gt;...

Звуковое оповещение при свернутом браузере
Здравствуйте, форумчане. Не подскажете ли, как можно сделать воспроизведение звука, при новом событии на сайте, даже при свернутом...

оповещение
Подскажите как сделать оповещение в делфи. к примеру как будильник, например если в 11:00 не выполняется условие, то каждые 10 минут,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru