Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/27: Рейтинг темы: голосов - 27, средняя оценка - 4.89
34 / 32 / 2
Регистрация: 25.11.2010
Сообщений: 386

Подгруздка контекста.

20.03.2011, 21:31. Показов 6178. Ответов 62
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подгружаю контекст в див с помощью аякса.
JavaScript
1
2
3
4
5
6
7
8
$(document).ready(function(){
                $.ajax({   
                    type: "POST",   
                    url: "greetings.php",   
                    data: "url=whod",   
                    success: function(html){$("div#whod").html(html);}
                }); 
});
ну вот в подружейнном контексте скрипт не находит объекты хотя этиже объекты вставленные в код вручную работают норм.
к примеру:
JavaScript
1
2
3
4
$("a#viod").click(function(){
                           alert("нажалась");
 
});
вот подгружаемый файл.
HTML5
1
2
3
<a id="viod" href="javascript:void(0);">
Выйти
</a>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.03.2011, 21:31
Ответы с готовыми решениями:

Потеря контекста
Доброго времени суток. Помогите понять следующий пример: взят от сюда https://learn.javascript.ru/bind var user = { ...

Привязка контекста к {}
Можно привязать контекст к объекту? var obj1 = { prop: 1, method: { set: function () { return...

Задание контекста в сallback-функциях
Всем привет! В последние время JS становится всё асинхронее и повсюду используются callback'и. Классная штука, однако проблема в том,...

62
34 / 32 / 2
Регистрация: 25.11.2010
Сообщений: 386
25.03.2011, 20:40  [ТС]
Студворк — интернет-сервис помощи студентам
щас проблема следующая
хочу реализовать каналы в своём чате.
общее каналы есть
а вот приватов нету
это код общих каналов.
HTML5
1
<div id="wso">||<a id="1" href="javascript:void(0);"> Общий </a>||<a id="2" href="javascript:void(0);"> Не общий </a>||<a id="3" href="javascript:void(0);"> Не мой </a>||</div>
с приватыми тоже наподобие только там по другому
PHP
1
<div id="priv"></div>
слева есть список все кто онлайн в ссылках их ИД
при нажатие на ссылку должно делаться следующие
добавить в див priv
<a id="ID usera" href="javascript:void(0);"> Ник игрока</a>
проблема в том что нужно не только добавлять но и удалять их из этого списка поэтому обычныой переменной воспользоваться нельзя. Как быть?
0
 Аватар для Tatsu_real
96 / 96 / 7
Регистрация: 14.02.2011
Сообщений: 238
25.03.2011, 21:17
а при нажатии на что должны юзеры удаляться из списка?
1
34 / 32 / 2
Регистрация: 25.11.2010
Сообщений: 386
26.03.2011, 00:59  [ТС]
ну допустим рядом с <a id="ID usera" href="javascript:void(0);"> Ник игрока</a> будет картинка с крестиком при нажатии на неё должно удалятся
0
 Аватар для Tatsu_real
96 / 96 / 7
Регистрация: 14.02.2011
Сообщений: 238
26.03.2011, 01:26
ну тогда вот так
допустим у тебя <a id="ID usera" href="javascript:void(0);">Ник игрока</a> - это список слева все кто онлайн, т.е. у тебя есть приблизительно такая структура
HTML5
1
2
3
4
5
6
7
<div id="online_users">
<a id="1" href="javascript:void(0);">User1</a>
<a id="2" href="javascript:void(0);">User2</a>
<a id="3" href="javascript:void(0);">User3</a>
</div>
 
<div id="priv"></div>
JS
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
$('div#online_users > a').click(function (){
var user_id = $(this).attr('id');
var user_name = $(this).html();
 
$('div#priv').append('<a id="'+user_id+'" href="javascript:void(0);">'+user_name+'</a><img id="'+user_id+'" title="delete" src="/i/del.gif" />');
});
 
$('div#priv > img[title=delete]').click(function (){
var user_id = $(this).attr('id');
 
$('div#priv > img#'+user_id).remove();
$('div#priv > a#'+user_id).remove();
});
1
34 / 32 / 2
Регистрация: 25.11.2010
Сообщений: 386
26.03.2011, 06:32  [ТС]
спасибо а можно ссылку на русски мануал по функции .append

Добавлено через 1 минуту
ещё нужна чтобы определённый скрипт выполнялся после закрытия странице
И по первому открытию.
0
 Аватар для Tatsu_real
96 / 96 / 7
Регистрация: 14.02.2011
Сообщений: 238
26.03.2011, 17:21
ну после закрытия это невозможно сделать с помощью скрипта, а сразу после открытия возможно
http://jquery-docs.ru/Manipulation/append/

Добавлено через 52 секунды
а что ты именно хочешь что бы выполнялось?
1
34 / 32 / 2
Регистрация: 25.11.2010
Сообщений: 386
26.03.2011, 21:27  [ТС]
ну например после открытия странице нужно чтобы данные посылались в файл и пользователь добавился в список онлайн а сразу после закрытия странице от туда убирался
насчёт функции которая вызывается после закрытия странице она есть я находил что то подобное только вот где?
0
 Аватар для Tatsu_real
96 / 96 / 7
Регистрация: 14.02.2011
Сообщений: 238
26.03.2011, 21:49
функция есть но она не кроссбраузерная... некоторые браузеры ее или не воспринимают или воспринимаю но не верно... обычно такие вещи (как проверка на онлайн) делают триггером, т.е. раз в секунду или реже (в чатах обычно 30-60 секунд) со стороны юзера отсылается запрос-подтверждение о том что он еще в онлайне и в базе переписывается значение последнего обновления статуса "онлайн"
а вот что бы выполнить какой-нибудь скрипт после открытия окна это пожалуйста...
JavaScript
1
2
3
4
5
$(document).ready(function() {
//код тут выполнится непосредственно после того как загрузится весь текст, картинки, короче говоря вся страница
  // пишешь код того же Аякс запроса в ПХП файл, который добавит юзера в список "онлайн"
//обычно в этом блоке пишут все функции и события, которые ты используешь, что бы исключить вариант, что кто-то начнет клацать по кнопкам до того как появится контейнер, куда резцультаты надо вставлять
});
1
34 / 32 / 2
Регистрация: 25.11.2010
Сообщений: 386
26.03.2011, 23:26  [ТС]
Tatsu_real, а сможешь написить пример триггера?

Цитата Сообщение от Tatsu_real Посмотреть сообщение
$(document).ready(function() { //код тут выполнится непосредственно после того как загрузится весь текст, картинки, короче говоря вся страница // пишешь код того же Аякс запроса в ПХП файл, который добавит юзера в список "онлайн" //обычно в этом блоке пишут все функции и события, которые ты используешь, что бы исключить вариант, что кто-то начнет клацать по кнопкам до того как появится контейнер, куда резцультаты надо вставлять });
этот код выполняется только один раз?
0
 Аватар для Tatsu_real
96 / 96 / 7
Регистрация: 14.02.2011
Сообщений: 238
27.03.2011, 00:07
все что в $(document).ready начинает работать после загрузки страницы, если ты напишешь не внутри функции а просто Аякс запрос сходу типа $.ajax(....); он выполнится 1 раз после загрузки страницы и все
JavaScript
1
2
3
4
5
6
7
8
9
$(document).ready(function() {
var user_id = '1';
online(user_id); //фызываем функцию что бы уведомить что мы онлайн
setInterval('online('+user_id+')',30000); //эта строчка будет вызывать функцию online() 1 раз в 30000мс (30 сек) начнет она работать сразу после загрузки страницы
 
function online(user_id){
$.ajax(....);
};
});
1
34 / 32 / 2
Регистрация: 25.11.2010
Сообщений: 386
27.03.2011, 03:08  [ТС]
это понятно а как быть если пользователю пришло сообщение? как это проверить в соседней ветки говорили что то про push погуглил но нечего на нашёл. Может даш мне ссылочку.
0
 Аватар для Tatsu_real
96 / 96 / 7
Регистрация: 14.02.2011
Сообщений: 238
27.03.2011, 03:34
в смысле сообщение? push -- это стандартный метод JS для добавления значения в конец массива
1
34 / 32 / 2
Регистрация: 25.11.2010
Сообщений: 386
27.03.2011, 05:03  [ТС]
1.У каждого пользователя существует ЛС.
Нужно чтобы при приходе ЛС пользователю приходило сообщение в реальном времени даже если пользователь до этого момента ни разу не общался с ним.
2.При приходи сообщения нужно чтобы в нижнем углу странице высвечивалась окошко с этим сообщением и происходил звуковой сигнал.
Это можно сделать на основе триггера но 30 секунд слишком много а если будет меньше 10 то при даже при 100 пользователях получится ддос атака. Слишком опасно. Сервер не выдержит.
0
 Аватар для Tatsu_real
96 / 96 / 7
Регистрация: 14.02.2011
Сообщений: 238
27.03.2011, 06:20
ну начнем с того что не все 100 пользователей будут одновременно отправлять запрос, каждый ведь в свое время зайдет, следовательно и функция вызываться будет у каждого в свое время, т.е. допустим 1 пользователь зайдет в 21:00:40, а второй в 21:00:42, следовательно у первого запрос об подтверждении отошлется в 21:00:50, а у второго -- 21:00:52... т.е. в этой реализации не будет такого что прям у 100 пользователей запросы отошлются в один миг... разница будет в секунды у некоторых в доли секунды, но разница запросов будет... по поводу сообщений, что бы не нагружать сервак доп запросом, ты можешь получать информацию из функции подтверждения статуса онлайн, т.е. ты делаешь аякс запрос в 1 файл... этот файл первым делом обрабатывает и обновляет статус онлайн, а после проверяет наличие новых сообщений и возвращает ответ, допустим в виде ссылки на чтение сообщения... и ты проверяешь ответ, если файл вернул не код ошибки и не пустое значение, ты берешь код, который тебе вернул файл и вставляешь его в блок с уведомлением и задаешь этому блоку стили соответствующие что бы он отобразился на странице
а по поводу 1000 запросов в секунду, это зависит от сервера, некоторые и от 50 запросов лягут, а некоторые несколько миллионов смогут обработать) у нас на работе попался на глаза сайт, который для генерации страницы делает 1828 запросов, причем половина из ответов, которые он получает именной этой странице не нужны... загружается страница 8-10 секунд... и получается, что если вычесть время, потраченное на загрузку рисунков, 1 страница делает около 200-300 заспросов в секунду) и это 1-м пользователем, а посещаемость этого сайта достаточно хорошая) сам сайт висит на стандартном среднего уровня серваке) так что тут вопрос в сервере, на который ты хочешь запихнуть твой проект, а не в количестве запросов)
1
34 / 32 / 2
Регистрация: 25.11.2010
Сообщений: 386
27.03.2011, 06:40  [ТС]
ну смотри JS это язык работающий на стороне клиента значит клиент может его поправить.
если он изменит
JavaScript
1
setInterval('online('+user_id+')',30000);
на
JavaScript
1
setInterval('online('+user_id+')',3);
то мой сервак в любом случее поляжет какое бы не было железо.
нащёт сообщений ... если способов кроме как проверка новых сообщений в БД больше нету тогда это плохо

А что насчёт появлении картинки в углу с текстом сообщения?
0
 Аватар для Tatsu_real
96 / 96 / 7
Регистрация: 14.02.2011
Сообщений: 238
27.03.2011, 14:59
Цитата Сообщение от Dzhekson6000 Посмотреть сообщение
ну смотри JS это язык работающий на стороне клиента значит клиент может его поправить.
если он изменит
зделай защиту в ПХП скрипте от такого, сделай таблицу в БД(users_log) в которой будет хранится Айпи пользователя, количество запросов от него за 10 секунд и время первого запроса и таблицу заппрета (black_list) в которой буду залоченные Айпи адреса... т.е.
юзер зашел, первым делом ты проверяешь его айпи в таблице black_list, если его нету разрешаешь ему лазить дальше, записываешь его АйПи в базу (1 запрос к серверу) и время, появилась запись в базе к примеру
ip | request | first_request
192.168.0.1 | 1 | 10:00:43
еще запрос, ты опять проверяешь его АйПи в black_list, если норм ты проверяешь сколько времени прошло с последнего запроса, если меньше 10 сек то +1 к request в таблице users_log и запись обновляется
ip | request | first_request
192.168.0.1 | 2 | 10:00:43

если больше то ставишь request на 1 и обновляешь время
ip | request | first_request
192.168.0.1 | 1 | 10:01:05

если ты добавлял к request единицу, тогда ты проверяешь сколько всего пришло от этого пользователя запросов за последний промежуток времени, если количество запросов уже превысило допустим 5 ты загоняешь этот АйПи в black_list, удаляешь этот айпи из users_log (что бы не захломлять) и останавливаешь все скрипты функцией die('Вы занесены в черный список'); простая защита)
Цитата Сообщение от Dzhekson6000 Посмотреть сообщение
А что насчёт появлении картинки в углу с текстом сообщения?
это через запрос к БД)
1
34 / 32 / 2
Регистрация: 25.11.2010
Сообщений: 386
28.03.2011, 07:38  [ТС]
хм.... а эта идея

Добавлено через 16 часов 18 минут
Цитата Сообщение от Tatsu_real Посмотреть сообщение
все что в $(document).ready начинает работать после загрузки страницы, если ты напишешь не внутри функции а просто Аякс запрос сходу типа $.ajax(....); он выполнится 1 раз после загрузки страницы и все
JavaScript
1
2
3
4
5
6
7
8
9
$(document).ready(function() {
var user_id = '1';
online(user_id); //фызываем функцию что бы уведомить что мы онлайн
setInterval('online('+user_id+')',30000); //эта строчка будет вызывать функцию online() 1 раз в 30000мс (30 сек) начнет она работать сразу после загрузки страницы
 
function online(user_id){
$.ajax(....);
};
});
почему та не работает я в функцию online поместил алерт но он несрабатывает
0
 Аватар для Tatsu_real
96 / 96 / 7
Регистрация: 14.02.2011
Сообщений: 238
28.03.2011, 10:48
вынеси за пределы функцию вот так
JavaScript
1
2
3
4
5
6
7
8
9
10
$(document).ready(function() {
var user_id = '1';
online(user_id); //фызываем функцию что бы уведомить что мы онлайн
setInterval('online('+user_id+')',10000); //эта строчка будет вызывать функцию online() 1 раз в 30000мс (30 сек) начнет она работать сразу после загрузки страницы
 
 
});
function online(user_id){
alert(user_id);
};
0
34 / 32 / 2
Регистрация: 25.11.2010
Сообщений: 386
28.03.2011, 14:43  [ТС]
а как вставить сессию в скрипт?
0
 Аватар для Tatsu_real
96 / 96 / 7
Регистрация: 14.02.2011
Сообщений: 238
28.03.2011, 16:31
в ява скрипт никак, в пхп самой первой строчкой пропиши session_start(); а потом сможешь задавать и проверять переменные через $_SESSION['some_value']
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.03.2011, 16:31
Помогаю со студенческими работами здесь

Инструменты для просмотра контекста замыкания
Столкнулся с такой проблемой: есть много функций, замкнутых относительно некоторых объектов, например,function add(x) { return...

Подгруздка поста вместо стандартного page break
Возможно ли сделать так что бы статья не загружалась полностью, особенно если она длинная, но при прокрутке, подгружает контент? Это...

Получение контекста!
Здавствуйте участники форума! :) На повестке возник такой вопрос. Обрисую ситуацию-&gt; Есть класс, унаследованный от родителя,...

Lifetime контекста
Как у вас в крупных проектах на ASP.MVC живёт контекст базы данных? То есть пока всё просто и общение с базой вынесено в отдельный слой, то...

Цена контекста в Японии
Если я не ошибаюсь, клики в америке и в европе порой стоят значительно дороже наших, отчественных. В связи с этим возникает вопрос: на...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru