Показ информации 15 раз в сутки одному IP. Скрипт для юКоз Страница 3

Показ определенного блока информации 15 раз в сутки одному IP. JavaScript скрипт для юКоз

Re: Показ информации 15 раз в сутки одному IP

Admin » » Сообщение:

Мыдаров Рустам писал(а) › 17.11.2015, 19:49:скрипт не повлияет на какой нибудь другой блок, а конкретно на эти два.

Понимаете, .. он в любом случае не повлиял бы ни на какие другие элементы, кроме тех, что в блоке hidden-box.
А прямых дочерних элементов в нем всего два, не зависимо от содержания этих блоков.
Просто вы не очень хорошо понимаете CSS селекторы .. или редко используете их.

Мыдаров Рустам писал(а) › 17.11.2015, 19:49:Возможно, но так зато надёжнее

Но менее оптимально..)

javascript, юкоз, ucoz, куки, показ, блок, сохранение, ip адрес, скрипт

Re: Показ информации 15 раз в сутки одному IP

Мыдаров Рустам » » Сообщение:

Admin писал(а) › 17.11.2015, 21:44:Понимаете, .. он в любом случае не повлиял бы ни на какие другие элементы, кроме тех, что в блоке hidden-box.
А прямых дочерних элементов в нем всего два, не зависимо от содержания этих блоков.
Просто вы не очень хорошо понимаете CSS селекторы .. или редко используете их.

Т.е. если вдруг код будет примерно вот такой:

Код: Выделить всё Развернуть
<div id="hidden-box">
<div class="block1">
<div>содержимое 1</div>
<div style="display:none;">содержимое 1</div>
</div>
 
<div class="block2" style="display:none;">содержимое 2</div>
</div>

То скрипт не развернёт тот блок который скрыт и находится в первом блоке?


Re: Показ информации 15 раз в сутки одному IP

Admin » » Сообщение:

Мыдаров Рустам писал(а) › 17.11.2015, 21:54:Т.е. если вдруг код будет примерно вот такой: То скрипт не развернёт тот блок который скрыт и находится в первом блоке?

Нет, т.к. прямые дочерние элементы в данном коде - это:

plain Код: Выделить всё Развернуть
<div id="hidden-box">
<div class="block1">
<div>содержимое 1</div>
<div style="display:none;">содержимое 1</div>
</div>
 
<div class="block2" style="display:none;">содержимое 2</div>
</div>

- выделены красным (открывающий и закрывающий, соответственно).

Все, что внутри данных блоков - уже не прямые дочерние элементы..

Даже вот так он будет работать нормально:

Код: Выделить всё Развернуть
<div id="hidden-box">
  <div class="block1">
    <div>содержимое 1</div>
    <div style="display:none;">
      <div class="block1">
        <div>содержимое 1</div>
        <div style="display:none;">содержимое 1</div>
      </div>
    </div>
  </div>
   
  <div class="block2" style="display:none;">
    <div class="block1">
      <div>содержимое 1</div>
      <div style="display:none;">содержимое 1</div>
    </div>
  </div>
</div>

Re: Показ информации 15 раз в сутки одному IP

Мыдаров Рустам » » Сообщение:

Admin писал(а) › 17.11.2015, 22:43:Все, что внутри данных блоков - уже не прямые дочерние элементы..

Ну хорошо, убедил, тогда буду пользоваться первым вариантом =)

А вообще в чём разница то? Чем так плох вариант с классами? Ведь что так, что так, размер скрипта особо не отличается.


Re: Показ информации 15 раз в сутки одному IP

Admin » » Сообщение:

Мыдаров Рустам писал(а) › 17.11.2015, 22:59:Ну хорошо, убедил,

Да не в этом дело - так оптимальнее, изящнее и проще. Во всяком случае для данной задачи.

Мыдаров Рустам писал(а) › 17.11.2015, 22:59:А вообще в чём разница то? Чем так плох вариант с классами?

Глобально - ничем. А так .. смотри выше)

Мыдаров Рустам писал(а) › 17.11.2015, 22:59:Ведь что так, что так, размер скрипта особо не отличается.

Да не в размере дело, а в скорости работы.
Поиск по ID - самый быстрый, поиск от ID по дочерним элементам - тоже оч. быстрый, намного быстрее, чем поиск по классу.
Кроме того, при изменении класса - идет рендеринг дочерних элементов..
Конечно, это все цифры, которые можно не брать в расчет, но .. все таки, лучше делать оптимально, особенно, если есть возможность.


Re: Показ информации 15 раз в сутки одному IP

Мыдаров Рустам » » Сообщение:

Admin спасибо за столь подробное разъяснение.

Слушай, а можно как то сделать, в целях экономии трафика сервера и пользователей, чтобы изображения находящиеся в блоке (который скрипт скрывает после 15 раза) не загружались.

У нас получается вот такая конструкция:

Код: Выделить всё Развернуть
<div class="block1" style="display:none;"><img src="http://site.ru/1.png"></div>

Но браузер всё равно фоново грузит изображения.

Я сейчас не прошу тебя писать скрипт, просто подкинь идейку =)

Мне на ум пришла вот такая идея. Подменять scr изображений на фейковый с помощью вот такого скрипта.

Код: Выделить всё Развернуть
<script type="text/javascript">
$('.block1 img').each(function(){
if(this.src.indexOf('site.ru')!=-1){
this.src=this.src.replace('site.ru','feik.ru');
};
});
 
$('.block1 a').each(function(){
if(this.href.indexOf('site.ru')!=-1){
this.href=this.href.replace('site.ru','feik.ru');
};
});
</script>

Но вот как его связать с твоим скриптом, чтобы они работали вместе, представления не имею.


Re: Показ информации 15 раз в сутки одному IP

Admin » » Сообщение:

Мыдаров Рустам

Мыдаров Рустам писал(а) › 19.11.2015, 20:37:Но браузер всё равно фоново грузит изображения.
Я сейчас не прошу тебя писать скрипт, просто подкинь идейку =)

Да, конечно грузит)
Идея такая (причем успешно реализованная в одном из моих проектов) - вместо:

Код: Выделить всё Развернуть
<img src="http://site.ru/1.png">

прописывать:

Код: Выделить всё Развернуть
<img data-src="http://site.ru/1.png">

а потом, по какому либо событию, запускать скрипт, который меняет атрибут data-src на src.
Кстати, этот метод используется на многих форумах к картинкам в спойлерах )

Мыдаров Рустам писал(а) › 19.11.2015, 20:37:Мне на ум пришла вот такая идея. Подменять scr изображений на фейковый с помощью вот такого скрипта.

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

Мыдаров Рустам писал(а) › 19.11.2015, 20:37:Но вот как его связать с твоим скриптом, чтобы они работали вместе, представления не имею.

Ну .. не так и сложно - если показов меньше 15 - запускать, больше - нет..


Re: Показ информации 15 раз в сутки одному IP

Мыдаров Рустам » » Сообщение:

Admin писал(а) › 19.11.2015, 21:28:а потом, по какому либо событию, запускать скрипт, который меняет атрибут data-src на src.
Кстати, этот метод используется на многих форумах к картинкам в спойлерах )

Такой вариант не подходит, так как в 10 тысячах материалов уже прописано так

Код: Выделить всё Развернуть
<img src="http://site.ru/1.png">
Admin писал(а) › 19.11.2015, 21:28:Ну .. не так и сложно - если показов меньше 15 - запускать, больше - нет..

Примерно так проканает?

Код: Выделить всё Развернуть
if(cn>15){
         $('.block1 img').each(function(){
if(this.src.indexOf('site.ru')!=-1){
this.src=this.src.replace('site.ru','feik.ru');
};
});
      }else{
         setCookie(nm,cn,1);
      };

Re: Показ информации 15 раз в сутки одному IP

Admin » » Сообщение:

Мыдаров Рустам писал(а) › 19.11.2015, 21:48:Такой вариант не подходит, так как в 10 тысячах материалов уже прописано так

Ну, тогда, сразу после картинок, запускать скрипт замены атрибутов .. правда, браузер, возможно, успеет начать загружать картинки, но не полностью..
Ну а потом - по сценарию, что выше.

Мыдаров Рустам писал(а) › 19.11.2015, 21:48:Примерно так проканает?

Да, принцип именно такой.


Re: Показ информации 15 раз в сутки одному IP

Мыдаров Рустам » » Сообщение:

Привет, подскажи пожалуйста, почему вот такая конструкция работает:

Код: Выделить всё Развернуть
<a href="javascript//" onclick="document.getElementById('myid').style.display='none';">текст</a>

а такая нет:

Код: Выделить всё Развернуть
<a href="javascript//" onclick="document.getElementById('myid').style.pointer-events='auto';">текст</a>

т.е. мне нужно по клику на ссылку присвоить div блоку с айди myid это - pointer-events: auto;

почему то не работает.

Извини, не хотел создавать новую тему ради такой мелочи.


Re: Показ информации 15 раз в сутки одному IP

Admin » » Сообщение:

Мыдаров Рустам

Мыдаров Рустам писал(а) › 27.11.2015, 23:52:Привет, подскажи пожалуйста, почему вот такая конструкция работает:

Код: Выделить всё Развернуть
<a href="javascript//" onclick="document.getElementById('myid').style.display='none';">текст</a>

а такая нет:

Код: Выделить всё Развернуть
<a href="javascript//" onclick="document.getElementById('myid').style.pointer-events='auto';">текст</a>

Добрый)
Потому что .. короче не так задается составной (из двух слов, разделенных тире) стиль, а вот так:

plain Код: Выделить всё Развернуть
<a href="javascript//" onclick="document.getElementById('myid').style.pointerEvents='auto';">текст</a>

или через атрибут..



Re: Показ информации 15 раз в сутки одному IP

Мыдаров Рустам » » Сообщение:

Привет, помнишь ты мне платно скрипт написал на кукисах, лимит на показ информации в день на одного человека.
Так вот, нельзя ли его переделать, чтобы сохранялось не в куки, а в localstorage ?
Ато некоторые хитровыдуманные пользователи чистят куки и дальше читают =( вот как этот - http://dota2.ru/forum/threads/kak-vy-chitaete-komiksy.932212/
Просто localstorage уже не так просто очистить средствами браузера, нежели кукисы.


Re: Показ информации 15 раз в сутки одному IP

Admin » » Сообщение:

Мыдаров Рустам писал(а) › 14.08.2016, 22:21:Так вот, нельзя ли его переделать, чтобы сохранялось не в куки, а в localstorage ?

Можно. О каком именно скрипте речь? Ссылка, желательно.

Мыдаров Рустам писал(а) › 14.08.2016, 22:21:Просто localstorage уже не так просто очистить средствами браузера, нежели кукисы.

Так же просто, если поинтересоваться вопросом.
Например, about:config и снять галочку с dom.storage.enabled, да и просто создать закладку с текстом вместо адреса:

Код: Выделить всё Развернуть
javascript:(function(){localStorage.clear()})();void(0);

Не говоря уж об ручном способе:
Firefox

Код: Выделить всё Развернуть
C:\Users\<Windows login/user name>\AppData\Roaming\Mozilla\Firefox\Profiles\<profile folder>\webappsstore.sqlite

или

Код: Выделить всё Развернуть
%APPDATA%\Mozilla\Firefox\Profiles\<profile folder>\webappsstore.sqlite

Chrome

Код: Выделить всё Развернуть
%LocalAppData%\Google\Chrome\User Data\Default\Local Storage\

Internet explorer

Код: Выделить всё Развернуть
%userprofile%\AppData\LocalLow\Microsoft\Internet Explorer\DOMStorage

Opera

Код: Выделить всё Развернуть
C:\Users\Administrator\AppData\Roaming\Opera\Opera\sessions\autosave.win

или

Код: Выделить всё Развернуть
C:\Users\Administrator\AppData\Local\Opera\Opera\pstorage\

Пред.



Похожие темыКомментарии ПросмотрыПоследнее сообщение
15957Re: Вывод информации в поиске
Сообщение от: kinouser