С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/32: Рейтинг темы: голосов - 32, средняя оценка - 4.97
10 / 10 / 1
Регистрация: 07.06.2010
Сообщений: 124

Устранения мерцания всей страницы при обновлении чата встроенного в нее

25.10.2010, 18:47. Показов 6707. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ситуация такова: при автоматическом обновлении миничата каждые 5 сек, обновляется вся страничка в которую встроен чат, а также неприемливы мерцания. Необходимо скрыть обновеление страницы, тоесть оновление идет а мерцаний не видно. Вот исходники файлов:

index.php
HTML5
1
2
3
<iframe src="chat.php" width="640" height="415" align="left" hspace="10" vspace="10">
Ваш браузер не поддерживает плавающие фреймы!
</iframe>
chat.php
HTML5
1
2
3
4
5
6
7
8
9
<html>
<head>
<title>Мини Чат!</title>
</head>
<frameset rows="30%,70%">
    <frame name="addmsg" src="addmsg.php">
    <frame name="showmsg" src="showmsg.php">
</frameset>
</html>

showmsg.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
<html>
<head>
<meta http-equiv="refresh" content="5; url=showmsg.php">
</head>
<body>
<?php
  session_start();
  $id = session_id();
  include "functions.php";
 
  $file = file("messages.txt");
  if ( count( $file ) > 0 ) {
    $file = array_reverse( $file );
    $messages = "";
    foreach($file as $value) {
      $record = explode("¤", trim($value));
      $messages = $messages."<div><font color=orangered><b>".$record[0]."</b></font> <span style='color:grey; font-size: 16px;'>".
      $record[1]."</span><br/>".$record[2]."</div>";
    }
    $messages = make_smiles($messages);
  } else {
    $messages = "<div>Нет сообщений</div>\n";
  }
  echo $messages; 
?>
</body>
</html>
addmsg.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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<html>
<head>
 
<?php
session_start();
$nick=$_SESSION['user'];
?>
<script type="text/javascript">
function AddSmile(text) {
  document.forms["addMsg"].elements["message"].value+=text;
  document.forms["addMsg"].elements["message"].focus();
}
 
function PutSmiles() {
  var pointer = "onmouseover=this.style.cursor='pointer'";
  var smiles = ["smiley", "wink", "cheesy", "grin", "angry", "sad", "shocked", "cool", 
  "rolleyes", "tongue", "embarassed", "lipsrsealed", "undecided", "kiss", "cry"];
  var emb = [":)", ";)", ":cheesy:", ":grin:", ":angry:", ":(", ":o", ":cool:", "::)", 
  ":tongue:", ":embarassed:", ":lipsrsealed:", ":-/", ":kiss:", ":cry:"];
  for (i = 0;i < 15; i++) {
    document.write("<img src='images/" + smiles[i] + ".gif' onclick='javascript: AddSmile(\" " + 
    emb[i] + "\");' " + pointer + " alt='" + smiles[i] + "' width='15' height='15' />&nbsp;");
  }
}
 
function CheckMsg(frm)
{
  if(frm.elements["message"].value == "") {
    alert("Введите сообщение");
    return false;
  }
  else
    return true;  
}
</script>
</head>
<body>
<form method="POST" name="addMsg" onSubmit="CheckMsg(this);">
&nbsp;&nbsp;&nbsp;<script type='text/javascript'>PutSmiles()</script><br/>
<textarea name="message" rows="2" cols='60'></textarea><br/>
<input type="submit" value='Добавить'>
<img width="15" height="15" src="./images/refresh.gif" 
OnMouseOver='this.style.cursor="pointer";' alt="Обновить Чат!" 
OnClick="parent.showmsg.location.href = parent.showmsg.location.href;" 
style="position:absolute; top: 5px; right:5px" />
 
 
<?php
if ( isset($_POST['message']) and !empty($_POST['message']) ) {
  if ( filesize( "messages.txt" ) > 1 ) $file = file("messages.txt");
 
  // Добавляем новую запись
  $message = substr( $_POST["message"], 0, 250 );
  $message = htmlspecialchars( trim($message) );
  $message = preg_replace( "#\r?\n#", '<br/>', $message );
  $file[] = $nick."¤".date("[d-m-y H:i:s]")."   <font color=black>".$message." <font>\n";
  // Удаляем старые записи (оставляем только десять последних)
  $cnt = count( $file );
  if ( $cnt > 10 ) {
    for( $i = 0; $i < ($cnt-10); $i++ ) array_shift( $file );
  }     
  // Перезаписываем файл
  if ( $fp = fopen("messages.txt", "w") ) {
    if (flock($fp, LOCK_EX)) {
      foreach ( $file as $msg ) fwrite($fp, $msg);
      flock($fp, LOCK_UN);
    }
    fclose($fp);
  }
  // Обновляем файл, где хранится информация о пользователях on-line
  $file = file( "online.txt" );
  $cnt = count( $file );
  $id = session_id();
  for ( $i = 0; $i < $cnt; $i++ ) {
    $tmp = explode( "|", $file[$i] );
    // была ли запись об этом пользователе?
    if ( $tmp[0] == $id ) $on = $i;   
  }
  if ( isset($on) ) {
    // запись уже была - надо обновить время
    $file[$on] = $id."|".time()."\n";
  } else {
    // записи еще не было, значит добавляем
    $file[] = $id."|".time()."\n";
  }
  if ( $fp = fopen("online.txt", "w") ) {
    if (flock($fp, LOCK_EX)) {
      $c = count($file);
      for ( $i = 0; $i < $c; $i++) fwrite($fp, $file[$i]);
      flock($fp, LOCK_UN);
    }
    fclose($fp);
  }
}
 
?>
 
</body>
</html>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.10.2010, 18:47
Ответы с готовыми решениями:

Как при обновлении формы сохранить введенные в нее данные
Как при обновлении формы сохранить введенные в нее данные . Буду очень благодарен. &lt;form method=post name=&quot;ss&quot;&gt; ...

Как при обновлении формы сохранить введенные в нее данные через переменные
Как при обновлении формы сохранить введенные в нее данные через переменные. &lt;form method=&quot;POST&quot; &gt; &lt;p...

Автозаполнение при обновлении страницы
Добрый день! Я начинающий разработчик пишу свой блог на php, столкнулся с проблемой при вводе данных в форму. Когда данные ушли форма...

10
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
25.10.2010, 19:06
Цитата Сообщение от Linnard Посмотреть сообщение
HTML5
1
<meta http-equiv="refresh" content="5; url=showmsg.php">
Вот и всё мерцание. Страница каждый 5 сек заново грузится.
0
10 / 10 / 1
Регистрация: 07.06.2010
Сообщений: 124
25.10.2010, 19:12  [ТС]
Цитата Сообщение от Vovan-VE Посмотреть сообщение
Вот и всё мерцание. Страница каждый 5 сек заново грузится.
это мне понятно, чат и должен обновлятся каждые 5 сек, тоесть страница showmsg.php, но проблема в том что обновляется и вся страница index.php что нужно испрвить.
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
25.10.2010, 19:23
HTML5
1
<body onload="setTimeout(function(){location.reload();},5000);">
0
10 / 10 / 1
Регистрация: 07.06.2010
Сообщений: 124
25.10.2010, 19:30  [ТС]
Цитата Сообщение от Vovan-VE Посмотреть сообщение
HTML5
1
<body onload="setTimeout(function(){location.reload();},5000);">
Подскажите пожалуйста куда вставить этот код?
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
25.10.2010, 19:41
Цитата Сообщение от Linnard Посмотреть сообщение
Подскажите пожалуйста куда вставить этот код?
showmsg.php, заменить строку 5.
0
10 / 10 / 1
Регистрация: 07.06.2010
Сообщений: 124
25.10.2010, 20:20  [ТС]
Строку 5 заменил но к сожалению мерцание не исчезло...

Добавлено через 34 минуты
Цитата Сообщение от Vovan-VE Посмотреть сообщение
showmsg.php, заменить строку 5.
Строку 5 заменил но к сожалению мерцание не исчезло...
0
CEO
Эксперт С++
 Аватар для Alligieri
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
26.10.2010, 02:42
Linnard, а вы
Цитата Сообщение от Linnard Посмотреть сообщение
<meta http-equiv="refresh" content="5; url=showmsg.php">
потерли?
0
Заблокирован
26.10.2010, 09:12
может стОит почитать о технологии AJAX?
0
10 / 10 / 1
Регистрация: 07.06.2010
Сообщений: 124
26.10.2010, 11:38  [ТС]
Цитата Сообщение от Dzhej-Dzhej Посмотреть сообщение
может стОит почитать о технологии AJAX?
Все говорят что именно с помощью AJAX єто можно реализовать, но как?
0
Заблокирован
26.10.2010, 11:53
я не силен в веб-технологиях
можно посмотреть на форуме через поиск по ключевому слову ajax
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.10.2010, 11:53
Помогаю со студенческими работами здесь

Показать id при обновлении страницы
Есть кнопка, нажимая на неё меняется URl без перезагрузки $('.knopka').click(function(event){ url = '?id=1'; ...

Переадресация при обновлении страницы
Добрый день. Есть две страницы. На одной происходит указание имени и e-mail. После нажатия на кнопку Submit - происходит перенаправление...

Дублирует при обновлении страницы
При обновление страницы дублирует в базу сообщение &lt;?php include (&quot;config/conf.php&quot;);?&gt; &lt;?php $res =...

как сделать чтобы при при обновлении страницы (header('location .');) попадать на ту же позицию
Например у меня есть длинный список записей, под каждой записью кнопка удалить, когда нажимаешь на нее, то происходит удаление записи и...

Дублирование тикета из бд при обновлении страницы
У меня есть личный кабинет игрового сервера с сапортом, при обновлении страницы с тикетом последнее сообщение в нем дублируется или сам...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru