NilColor

/*Terra nullius*/

Archive for the ‘javascript’ tag

Решил поменять тему блога

without comments

Ну в смысле тему как оформление. Зачем? Не знаю. Просто попалась на глаза красивая и простая тема.
Есть в ней пара минусов, но может быть когда нибудь я до них доберусь и поправлю.

А пока буду дальше читать Secrets of the JavaScript Ninja.

Written by NilColor

October 26th, 2009 at 11:10 am

Posted in blog

Tagged with , , ,

JavaScript import

without comments

В JavaScript нет директивы import. Хотя она есть даже в css (@import). Но если надо, очень надо, то можно воспользоваться следующей “заменой”

function import (url) {
    var xhr;

    if(window.XMLHttpRequest) {
        xhr = new XMLHttpRequest();
    } else {
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if(xhr){
        xhr.open("GET",url,false);
        xhr.send(null);
        eval(xhr.responseText);
    } else {
        return false;
    }
}

Пользоваться довольно просто

import('/path/to/js/file.js');
call_function_from_file_js();

То, что код функции call_function_from_file_js будет доступен, гарантировано синхронностью XMLHttpRequest (3-й параметр). У данного решения есть маленький минус – загруженный код проходит через eval(), его многие считают злом и т.д…. Еще могу возникнуть сложности, если в загружаемом коде есть объявления типа

function foo() {
    //some code
}

Если нарветесь — попробуйте изменить определение функции на

foo = function () {
    //some code
}

Должно помочь.

Written by NilColor

October 20th, 2009 at 9:28 pm

Posted in javascript

Tagged with , , ,

JavaScript… какой он?

with 5 comments

Есть такая модная штука в наше время — AJAX/JSON/XML/WEB20 и иже с ними… Мне они тоже нравятся. И нравятся настолько, что я и сам этим балуюсь ;) Например сейчас в одном из проектов, небольшом, но очень гордом, я занят тем, что пробую сделать ему, проекту, модное UI, не в смысле дизайна – тут я пас, а в смысле “все ajax-запросам”, json туда, json обратно…
А самое веселое в этом знаете что? Это весело! Это оказалось реально интересно… Придумывать, как же рисовать все это на клиенте, где хранить шаблоны и как их заполнять… Битвы за скорость (вообще отдельная песнь)… Борьба с обработчиками событий, которые по вине их писавшего рвут even bubbling и это аукается где-то: то ссылки перестают кликаться, то в поле ввода ничего нельзя ввести ;)

Сейчас у меня стоит задача придумать, как же быть с шаблонами… Как только будет что-то — расскажу. Пока самая интересная идея это хранить их прям в коде ввиде блоков

<script type="text/html" charset="utf-8" id="tmpl-block-a">
    <div>
        ...
    </div>
</script>

Да да, тут нет ошибки ;) если вдруг вы кинулись писать это в коменте. Способ интересен, хорош и удобен. Но для мелких шаблонов. А если они большие?

Written by NilColor

March 29th, 2009 at 9:39 pm

Posted in ajax, javascript

Tagged with , , , , ,

Google Playground

without comments

Хотите попробовать jQuery? Или может MooTools или Prototype? Может быть хотели попробовать сделать что-то с Google Maps? В общем есть много интересного и любопытного. И для этого есть такая штука на гуглокоде – AJAX APIs Playground. Что же там можно? Можно в очень компактном и понятном виде посмотреть на примеры использования выше перечисленного, можно самому попробовать, поэкспериментировать… И самое приятное — для этого ничего не надо кроме браузера и желания собственно пробовать!
Дерзайте, это очень интересно. Даже полезно. И может навести на мысль что-то сделать… Как у меня ;)

Written by NilColor

February 12th, 2009 at 9:23 am

Posted in javascript

Tagged with , , , ,

JavaScript Database Programming

without comments

Мой RSS-поток вынес мне тут одну интересную статейку про использование баз данных

The HTML 5 specification provides a new mechanism for client-side data storage: JavaScript database support. HTML 5 is currently in development by the Web Hypertext Application Technology Working Group (WHATWG).

JavaScript database support is available in Safari 3.1 and later, and in iPhone OS 2.0 and later.

You should read this documentation if you are a web developer who wants to store data locally on a user’s computer in amounts beyond what can reasonably be stored in an HTTP cookie.

Очень мне это показалось интересным. Какие возможность это открывает! Осталось дело за малы: что-бы IE8 начал поддерживать HTML5 (как, все еще, самый поп. бродильщик) и что-бы этот самый HTML5 уже наконец пришел в массы.

Ну а ежели вам интересно почитать и попробовать как это работает — милости прошу, Safari JavaScript Database Programming Guide к вашим услугам.

P.S.
Этак CoachDB в пролете останется ;)

Written by NilColor

February 3rd, 2009 at 5:02 pm

Posted in Tech

Tagged with , , , ,

Session variables without cookies

without comments

Session variables without cookies – заметка (и библиотека на javascript) о том, как можно сохранять данные пользователя в сессии не используя для этого cookie. Минус – это и правда сессия. После закрытия окна все пропадет (т.е. не сделать функцию типа “Remember Me”). Плюсы тоже есть – для каждого свои.
В любом случае статья интересна оригинальностью идем — она [идея], как мне показалось, из разряда “как же я сам об этом не подумал?! этого очевидно!”.

Written by NilColor

May 16th, 2008 at 10:46 am

Posted in links, web

Tagged with ,

Расширение jQuery

without comments

[jQuery][1] – небольшая и крайне удобная JavaScript библиотека позволяющая сильно расширить возможности вэб-приложения не рисую при этом жутковатых конструкций если надо сделать AJAX-запрос или потеребить DOM документа. Вот например вполне себе работающий кусок JavaScript с использованием jQuery:

$alertHolder = $('<div></div>')  
.attr('id', 'tsm_alert')  
.addClass('tsm_alert')  
.append($('<h1 id="alert_title"></h1>'))  
.append($('<img src="/media/tsm/img/close.gif" title="Закрыть" />').click(tsm_alert_close))  
.append($('<div id="alert_text"></div>'))  
.insertBefore(document.body.firstChild)  
.hide();

Что тут делается? Это кусок из кода, который приделывает к вэб-приложению аналог alert’а, но не такой раздражающий ;)

Ну и как и положено такого рода библиотекам (да и JavaScript’у в целом) – ее можно расширять своими плагинами.

Read the rest of this entry »

Written by NilColor

January 11th, 2008 at 9:16 am

Posted in jquery

Tagged with , , , ,