Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #101 (permalink)  
Старый 17.04.2011, 14:31
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от tenshi
что такое "защита от хсс"?
хм, и где подвох? Защита от внедрения на сайт кода злоумышленником. В контексте нашей беседы это, например, htmlpurifier

Сообщение от tenshi
>> вопрос лишь в том, решать ли её или же стыдливо прятать голову в песок, притворяясь буд-то её на самом деле нет.
> это решение одной проблемы и появление другой
чтд
боюсь причинно-следственная связь осталась за кадром

Сообщение от tenshi
если бы правила парсинга хтмл не были так сложны в сети меньше бы было дырявых сайтов.
и сеть бы развивалась другими темпами
Ответить с цитированием
  #102 (permalink)  
Старый 17.04.2011, 15:27
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

отлично, а теперь попробуй с помощью htmlpurifer сделать невалидный хмл

мне как-то пох с какой скоростью развивается сеть. в ней и так полно дерьма. куда уж больше?
__________________
.ня

Последний раз редактировалось tenshi, 17.04.2011 в 15:30.
Ответить с цитированием
  #103 (permalink)  
Старый 17.04.2011, 19:21
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от tenshi
мне как-то пох с какой скоростью развивается сеть. в ней и так полно дерьма. куда уж больше?
чтд

Сообщение от tenshi
отлично, а теперь попробуй с помощью htmlpurifer сделать невалидный хмл
не понял, при чем тут xml и _не_валидный?
Ответить с цитированием
  #104 (permalink)  
Старый 18.04.2011, 02:09
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

при том, что на выходе он генерирует ххтмл фрагмент
__________________
.ня
Ответить с цитированием
  #105 (permalink)  
Старый 18.04.2011, 11:59
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от tenshi
3. и эти специалисты не ноют, что битый хмл не будет показан пользователю. потому что знают, что у них он никогда битым не будет. а те, кто ноет - неявно подписываются тем самым под своей профессиональной непригодностью.
Сообщение от x-yuri
на чем основана эта уверенность?
Сообщение от tenshi
что такое "защита от хсс"?
это типа такой окольный способ ответа на мой вопрос?

Сообщение от tenshi
ошибки парсинга хмл выявляются очень быстро при первичном тестировании. а при правильно выбранных инструментах исключаются вовсе.
а что это за правильно выбранные инструменты и что ты вообще можешь посоветовать в плане xhtml?
Ответить с цитированием
  #106 (permalink)  
Старый 18.04.2011, 12:13
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от x-yuri
советую выложить свой проект на github
Пока рано, а так да.
Сообщение от x-yuri
Но возможно что это все превратиться в нечто другое, не то, что ты хотел (чья-то реализация станет популярнее).
Главное, что бы идеология и архитектура сохранилась, а какая будет реализация - не важно.
Сообщение от x-yuri
на чем основана эта уверенность?
Ну так то он всё правильно говорит. Не умеешь работать с форматом - не берись.

Ну вот
Ещё кое-что надумал, пока пытался заснуть вчера... Асинхронность. Например (из прошлого html-кода):

this.parent.item.Style({
  display: 'none'
}, function(dataObject, property){
  // Представление изменилось
});

или:

this.parent.item.Event({
  click: false
}, function(dataObject, property){
  // Обработчик установлен
});


Так как всё происходит после выполнения кода, в недрах контроллера (платформы), сразу обработать результат не получится. Например, часто бывает нужно узнать размеры элемента сразу после изменения данных. Архитектура (которая у меня в голове и в черновиках) это позволяет сделать. Как вам такой код?!
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #107 (permalink)  
Старый 18.04.2011, 12:29
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

на тот вопрос я не отвечал, так как не вижу смысла

любые инструменты, которые работают с документом не как со строкой, а как с деревом.

события надо не только вешать, но и убирать, поэтому лучше что-то типа такого:

var clickSpy= Spy( elem, 'click', function(){} ).listen() // создали и запустили прослушку
...
clickSpy.forget() // забили на прослушку
...
clickSpy.scream() // кричим другим агентам
__________________
.ня
Ответить с цитированием
  #108 (permalink)  
Старый 18.04.2011, 12:36
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от tenshi
события надо не только вешать, но и убирать
delete this.parent.item.Event().click;


Сообщение от tenshi
clickSpy.scream() // кричим другим агентам
Это что такое? Модуль не может напрямую влиять на другие модули. Это чуть ли не основная цель всей архитектуры. Полная независимость.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #109 (permalink)  
Старый 19.04.2011, 00:40
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от B~Vladi
Ещё кое-что надумал, пока пытался заснуть вчера... Асинхронность. Например (из прошлого html-кода):
ну асинхронность она определенно усложняет. Просто пока ее немного, это не мешает. А потом начинаешь изобретать цепочки вызовов, т.е. прячешь эту асинхронность. На github'е видел не одну библиотеку, в которой это есть. Например, можно так реализовать, через рекурсию, для небольших цепочек, на mootools:

var AsyncChain = new Class({
	Implements: [Events, Options],
	
	_chain: [],
	_state: {},
	
	initialize: function( options ){
		this.setOptions( options );
	},
	
	add: function( f ){
		this._chain.push( f );
		return this;
	},
	
	run: function(){
		run.of(this)(0);
		return this;
		
		function run( i ){
			var f = this._chain[i];
			if( ! f )
				return;
			f.of(this)( run.of(this).pass(i+1) );
		}
	},
    
	clear: function(){
		this._chain = [];
		return this;
	},
	
	set: function( options ){
		$extend( this._state, options );
		return this;
	}
});


пример использования:
var chain = new AsyncChain();
        chain.setOptions({
                'onFailure': onFailure.of(this).pass(chain),
                'onCancel': onCancel.of(this).pass(chain)
        })
             .set( options )
             .add( this._disableLink )
             .add( this._setPhotoUrl )
             .add( this._setPhotoDownloadUrl )
             .add( this._showThrobber )
             .add( photosession.getThumbnailPath )
             .add( photosession.setPhotoUploadUrl )
             .add( photosession.loadPhoto )
             .add( photosession.loadCropResize )
             .add( this._hideThrobber )
             .add( this._showDialog )
             .add( photosession.cropResize )
             .add( photosession.setThumbnailFormField )
             .add( this._loadThumbnail )
             .add( this._showThumbnail )
             .add( this._closeDialog )
             .add( this._enableLink )
             .run();
Ответить с цитированием
  #110 (permalink)  
Старый 19.04.2011, 17:38
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Не не не, Девид Блейн.

Вот, например, есть объект, описывающий тег:
var data = {
  value: 'text',
  display: false
}


Код модуля:
function module(data){
  // Изменяем данные
  data.text = 'new text';
  data.display = true;
}


Как это всё выглядит с наружи:
var data = getData(); // получаем объект data

// Ситуация - обрабатываем событие. Для этого передаем объект data всем модулям, которым он принадлежит
var modulesLength = modules.length;
while(modulesLength--){
  modules[modulesLength](data); // Модули сделали всё, что им необходимо
}

// Обновляем представление в соответствии с объектом data.
update(data);


Отсюда видно, что представление изменится только после выполнения обработчиков модулей. Что бы можно было учесть эту ситуацию - я и предложил это решение. Цепочки тут не нужны.

Сообщение от x-yuri
ну асинхронность она определенно усложняет.
Согласен. Это выглядит как асинхронность на уровне кода, но по сути это событие.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф

Последний раз редактировалось B~Vladi, 19.04.2011 в 17:41.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как удалить из памяти весь XML документ? EisBerg Events/DOM/Window 1 03.04.2010 14:45
JavaScript на Яндекс.Фотки - почему тормозит браузеры? ZavFirefox Javascript под браузер 23 27.09.2009 19:24
Работа на javascript с xml masmash Общие вопросы Javascript 0 03.01.2009 23:20
xml и javascript faunder Общие вопросы Javascript 4 16.09.2008 18:07