<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>JSToolbox - все о JavaScript</title>
	
	<link>http://www.jstoolbox.com</link>
	<description>Блог о программировании вообще и о JavaScript в частности, уроки, статьи, заметки, база знаний.</description>
	<lastBuildDate>Wed, 28 Jul 2010 22:33:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Jstoolbox" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="jstoolbox" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">Jstoolbox</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>LightGallery 1.3</title>
		<link>http://www.jstoolbox.com/2010/01/17/lightgallery-1-3/</link>
		<comments>http://www.jstoolbox.com/2010/01/17/lightgallery-1-3/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 20:51:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[lightbox]]></category>
		<category><![CDATA[скрипты]]></category>

		<guid isPermaLink="false">http://www.jstoolbox.com/?p=545</guid>
		<description><![CDATA[<p>После некоторого перерыва, я выпустил новую версию <a href="/proekty/lightgallery/" title="LightGallery">LightGallery</a> - скрипта-галереи в стиле lightbox. Основное отличие от других подобных скриптов состоит в том, что LightGallery не требует сторонних скриптов. Просто подключаете на веб-страницу, и все готово к работе.</p>]]></description>
			<content:encoded><![CDATA[<p>После некоторого перерыва, я выпустил новую версию <a href="/proekty/lightgallery/" title="LightGallery">LightGallery</a> &#8211; скрипта-галереи в стиле lightbox. Основное отличие от других подобных скриптов состоит в том, что LightGallery не требует сторонних скриптов. Просто подключаете на веб-страницу, и все готово к работе.</p>
<p><span id="more-545"></span></p>
<p>
Что нового в этой версии:</p>
<ul>
<li>Улучшена производительность; особенно это относится к IE.</li>
<li>Добавлена поддержка события <em>onDomReady</em>. Теперь скрипт инициализируется не дожидаясь, пока загрузятся все изображения. Вам не нужно отныне добавлять инициализацию скрипта в window.onload, достаточно просто lightgallery.init(); (однако старая конфигурация с window.onload также будет работать).</li>
<li>Добавлены 2 новые темы. Одна из них &#8211; shape, любезно предоставлена <a href="http://shape.com.ua">Shape Design Studio</a>, за что им большое спасибо.</li>
<li>Исправлен ряд мелких багов.</li>
</ul>
<p>
<a href="/js/lightgallery/demo/demo_ru.html" class="demo" title="LightGallery демо пример">Смотреть демо</a><a style="margin-left:18px" href="http://lightgallery.googlecode.com/files/lightgallery-1.3.zip" class="download" title="Скачать">Скачать</a><br/><br />
<a href="/proekty/lightgallery/" class="external">Страница проекта</a><a style="margin-left:18px" href="http://code.google.com/p/lightgallery/" class="external">Страница проекта на Google Code</a><br/>
</p>
<p><br/></p>
<div class="postLinks"><strong>При поддержке:</strong><br/>spuzom.ru &#8211; <a href="http://spuzom.ru/detail.php?id=16">первые признаки беременности</a> news.ad-auto.ru &#8211; <a href="http://news.ad-auto.ru/">последние автоновости</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.jstoolbox.com/2010/01/17/lightgallery-1-3/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Функция trim в JavaScript</title>
		<link>http://www.jstoolbox.com/2009/11/01/funkciya-trim/</link>
		<comments>http://www.jstoolbox.com/2009/11/01/funkciya-trim/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 20:01:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Regex]]></category>

		<guid isPermaLink="false">http://www.jstoolbox.com/?p=520</guid>
		<description><![CDATA[<p>В JavaScript нет встроенной функции, для удаления пробелов в начале и конце строки, как например в PHP, где для этого используется функция <strong>trim</strong>. Под пробелами здесь подразумеваются символы SPACE, TAB, перенос строки и многое другое. Для реализации этой функции в JavaScript как правило пользуются регулярными выражениями. Один из таких способов опубликован в моей <a href="http://www.jstoolbox.com/skripty/rabota-so-strokami/obrezanie-stroki-trim/" title="Обрезание строки (trim)">базе знания</a>, в котором используется довольно таки простое регулярное выражение: "/^\s+&#124;\s+$/".</p>
<p>Как оказалось, такое выражение будет работать правильно не во всех браузерах, поскольку символ "\s" реализован в них по-разному. Подробней об этом можете прочитать <a href="http://thinkweb2.com/projects/prototype/whitespace-deviations/" title="Whitespace deviations">здесь</a> (англ.).</p>]]></description>
			<content:encoded><![CDATA[<p>В JavaScript нет встроенной функции для удаления пробелов в начале и конце строки, как например в PHP, где для этого используется функция <strong>trim</strong>. Под пробелами здесь подразумеваются символы SPACE, TAB, перенос строки и многое другое. Для реализации этой функции в JavaScript как правило пользуются регулярными выражениями. Один из таких способов опубликован в моей <a href="http://www.jstoolbox.com/skripty/rabota-so-strokami/obrezanie-stroki-trim/" title="Обрезание строки (trim)">базе знания</a>, в котором используется довольно таки простое регулярное выражение: &#8220;/^\s+|\s+$/&#8221;.</p>
<p>Как оказалось, такое выражение будет работать правильно не во всех браузерах, поскольку символ &#8220;\s&#8221; реализован в них по-разному и некоторые символы не трактуются как &#8220;пробельные&#8221;. Подробней об этом можете прочитать <a href="http://thinkweb2.com/projects/prototype/whitespace-deviations/" title="Whitespace deviations">здесь</a> (англ.). Из этого же источника привожу результаты сравнительных тестов, показывающих различие в работе со строками в различных браузерах.</p>
<p><span id="more-520"></span></p>
<div class="entry_picture" style="width:300px">
<a href="http://www.jstoolbox.com/blog/wp-content/uploads/2009/11/tests.jpg"><img src="http://www.jstoolbox.com/blog/wp-content/uploads/2009/11/tests-300x154.jpg" alt="Тесты браузеров на работу со строками" title="Тесты браузеров на работу со строками" width="300" height="154" class="alignnone size-medium wp-image-521" /></a>
</div>
<p>Как вариант решения этой проблемы, вместо выражения &#8220;\s&#8221; можно использовать группировку по симолам Unicode для обрезаемых символов:</p>
<pre class="prettyprint">
[\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029]
</pre>
<p>Один из вариантов реализации функций trim, trimLeft и trimRight с использованием такой группировки я нашел в библиотеке <a href="http://code.google.com/p/vice-versa/" title="vice-versa JavaScript library">vice-versa</a>:</p>
<pre class="prettyprint">
/** vice-versa String
 * @author      Andrea Giammarchi
 * @license     Mit Style License
 * @blog        http://webreflection.blogspot.com/
 * @project     http://code.google.com/p/vice-versa/
 * @version     0.20090710192302
 * @note        these method are about ECMAScript 5
 */

/** full specs String prototype trim, trimLeft, and trimRight
 * @target  Chrome, FireFox < 3.5, Internet Explorer, Opera, Safari
 */
(function(trim){
    var o = {
        trim:new RegExp("^" + trim + "|" + trim + "$", "g"),
        trimLeft:new RegExp("^" + trim),
        trimRight:new RegExp(trim + "$")
    },  k;
    for(k in o)
        if(!String.prototype[k])
            String.prototype[k] = (function(trim){
                return function(){
                    return this.replace(trim, "");
                };
            })(o[k]);
    delete o;
    delete k;
})("[\\x09\\x0A-\\x0D\\x20\\xA0\\u1680\\u180E\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]+");
</pre>
<p>Источник: <a href="http://code.google.com/p/vice-versa/source/browse/trunk/src/String.js" rel="nofollow">http://code.google.com/p/vice-versa/source/browse/trunk/src/String.js</a>.</p>
<div class="postLinks"><strong>При поддержке:</strong><br/>lazzy.ru - <a href=http://lazzy.ru/>что читать</a>?<br/>planiruem.com  - <a href=http://planiruem.com/>планирование беременности</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.jstoolbox.com/2009/11/01/funkciya-trim/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Сжатие JavaScript/CSS файлов при помощи Phing</title>
		<link>http://www.jstoolbox.com/2009/10/18/szhatie-js-css-fajlo-pri-pomoshhi-phing/</link>
		<comments>http://www.jstoolbox.com/2009/10/18/szhatie-js-css-fajlo-pri-pomoshhi-phing/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 15:38:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Phing]]></category>
		<category><![CDATA[Оптимизация]]></category>

		<guid isPermaLink="false">http://www.jstoolbox.com/?p=508</guid>
		<description><![CDATA[<p>В последнее время я имел возможность поработать с <a href="http://phing.info" title="Phing">Phing</a> - программой для сборки приложений. С её помощью можно копировать файлы приложения, заменять в них текст (например параметры конфигурационных файлов), и многое другое. Помимо прочего, можно самому создать подключаемые плагины, которые будут выполнять нужные нам задания. Мне нужно было при копировании таблиц стилей и скриптов выполнять их сжатие при помощи <a href="developer.yahoo.com/yui/compressor/" title="YUI compressor">YUI компрессора</a>, и я нашел отличное <a href="http://www.thepopeisdead.com/main/comments/easy_javascript_css_compression_with_phing/">решение</a> для этого.</p>]]></description>
			<content:encoded><![CDATA[<p>В последнее время я имел возможность поработать с <a href="http://phing.info" title="Phing">Phing</a> &#8211; программой для сборки приложений. С её помощью можно копировать файлы приложения, заменять в них текст (например параметры конфигурационных файлов), и многое другое. Помимо прочего, можно самому создать подключаемые плагины, которые будут выполнять нужные нам задания. Мне нужно было при копировании таблиц стилей и скриптов выполнять их сжатие при помощи <a href="http://developer.yahoo.com/yui/compressor/" title="YUI compressor">YUI компрессора</a>, и я нашел отличное <a href="http://www.thepopeisdead.com/main/comments/easy_javascript_css_compression_with_phing/">решение</a> для этого.</p>
<p><span id="more-508"></span></p>
<p>Представленный ниже плагин перед копированием сжимает скрипты и стили. Но учтите, что YUI-Compressor требует, чтобы была установлена Java:</p>
<pre class="prettyprint">
&lt;?php
/**
 * Uses the Phing Task
 */
require_once 'phing/Task.php';

/**
 * Task to compress files using YUI Compressor.
 *
 * @author      Keith Pope
 */
class kpMinTask extends Task
{
    /**
     * path to YuiCompressor
     *
     * @var  string
     */
    protected $yuiPath;

    /**
     * the source files
     *
     * @var  FileSet
     */
    protected $filesets    = array();

    /**
     * Whether the build should fail, if
     * errors occured
     *
     * @var boolean
     */
    protected $failonerror = false;

    /**
     * directory to put minified javascript files into
     *
     * @var  string
     */
    protected $targetDir;

    /**
     * sets the path where JSmin can be found
     *
     * @param  string  $yuiPath
     */
    public function setYuiPath( $yuiPath )
    {
        $this->yuiPath = $yuiPath;
    }

    /**
     *  Nested creator, adds a set of files (nested fileset attribute).
     */
    public function createFileSet()
    {
        $num = array_push( $this->filesets, new FileSet() );
        return $this->filesets[$num - 1];
    }

    /**
     * Whether the build should fail, if an error occured.
     *
     * @param boolean $value
     */
    public function setFailonerror( $value )
    {
        $this->failonerror = $value;
    }

    /**
     * sets the directory compressor traget dir
     *
     * @param  string  $targetDir
     */
    public function setTargetDir( $targetDir )
    {
        $this->targetDir = $targetDir;
    }

    /**
     * The init method: Do init steps.
     */
    public function init()
    {
        return true;
    }

    /**
     * The main entry point method.
     */
    public function main()
    {
        $command = 'java -jar {yuipath} {src} -o {target}';

        foreach( $this->filesets as $fs )
        {
            try
            {
                $files    = $fs->getDirectoryScanner( $this->project )->getIncludedFiles();
                $fullPath = realpath( $fs->getDir( $this->project ) );

                foreach( $files as $file )
                {
                    $this->log( 'Minifying file ' . $file );

                    $target = $this->targetDir . '/' . str_replace( $fullPath, '', $file );

                    if( file_exists( dirname( $target ) ) == false )
                    {
                        mkdir( dirname( $target ), 0700, true );
                    }

                    $cmd = str_replace( '{src}', $fullPath . DIRECTORY_SEPARATOR . $file, $command );
                    $cmd = str_replace( '{target}', realpath( $target ), $cmd );
                    $cmd = str_replace( '{yuipath}', realpath( $this->yuiPath ), $cmd );

                    $output = array();
                    $return = null;

                    exec( $cmd, $output, $return );

                    foreach( $output as $line )
                    {
                        $this->log( $line, Project::MSG_VERBOSE );
                    }

                    if( $return != 0 )
                    {
                      throw new BuildException( "Task exited with code $return" );
                    }

                }
            } 

            catch( BuildException $be )
            {
                // directory doesn't exist or is not readable
                if ($this->failonerror)
                {
                    throw $be;
                }
                else
                {
                    $this->log($be->getMessage(), $this->quiet ? Project::MSG_VERBOSE : Project::MSG_WARN);
                }
            }
        }
    }
}
</pre>
<p>Сохраните этот файл в папке <strong>build/extended/tasks/kpMinTask.php</strong>, а <em>yuicompressor</em> в <strong>build/tools/yuicompressor.jar</strong>. Здесь, <strong>build</strong> &#8211; это папка, в которой находится XML файл сборки.</p>
<p>Далее, в файле сборки <em>build.xml</em> добавляем задачи для сжатия:</p>
<pre class="prettyprint">
&lt;taskdef name="minify" classname="extended.tasks.kpMinTask" /&gt;

&lt;target name="minify-js"&gt;
    &lt;echo&gt;--------------------------------&lt;/echo&gt;
    &lt;echo&gt;| Minify javascript to release |&lt;/echo&gt;
    &lt;echo&gt;--------------------------------&lt;/echo&gt;
    &lt;minify targetDir="${DEPLOY_DIR}/public/js/"
              yuiPath="tools/yuicompressor.jar"&gt;
        &lt;fileset dir="${TRUNK_PATH}/public/"&gt;
                &lt;include name="js/*.js" /&gt;
                &lt;include name="js/**/*.js" /&gt;
        &lt;/fileset&gt;
    &lt;/minify&gt;
&lt;/target&gt;

&lt;target name="minify-css"&gt;
    &lt;echo&gt;--------------------------------&lt;/echo&gt;
    &lt;echo&gt;| Minify CSS to release |&lt;/echo&gt;
    &lt;echo&gt;--------------------------------&lt;/echo&gt;
    &lt;minify targetDir="${DEPLOY_DIR}/public/"
              yuiPath="tools/yuicompressor.jar"&gt;
        &lt;fileset dir="${TRUNK_PATH}/public/css/"&gt;
                &lt;include name="css/**/*.css" /&gt;
                &lt;include name="css/*.css" /&gt;
        &lt;/fileset&gt;
    &lt;/minify&gt;
&lt;/target&gt;
</pre>
<p>Теперь, для выполнения сжатия/копирования файлов нужно запустить задачу <em>minify-js</em> или <em>minify-css</em> или включить их в другую задачу.</p>
<p>Если у вас нет возможности использовать YUI-Compressor (например нет java на хостинге), то можете воспользоваться другими скриптами: <a href="http://code.google.com/p/jsmin-php/" title="JSMin">JSMin</a> и <a href="http://code.google.com/p/cssmin/">CSSMin</a>. Подробнее о том, как их использовать вместе с Phing читайте <a href="http://www.simplecoding.org/ispolzovanie-phing-dlya-sborki-web-prilozhenij.html" title="Использование Phing для сборки web приложений">здесь</a>.</p>
<div class="postLinks"><strong>При поддержке:</strong><br/><br />
stihi2.ru  &#8211; <a href=http://stihi2.ru/>стихи эпиграммы</a>,<br />
losty.ru  &#8211; <a href=http://losty.ru/razdel/novyigod.php>стихи про новый год</a>,<br />
full-house.ru  &#8211; <a href=http://full-house.ru/>стихи хокку</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.jstoolbox.com/2009/10/18/szhatie-js-css-fajlo-pri-pomoshhi-phing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как создать плагин для jQuery</title>
		<link>http://www.jstoolbox.com/2009/10/03/kak-sozdat-plagin-dlya-jquery/</link>
		<comments>http://www.jstoolbox.com/2009/10/03/kak-sozdat-plagin-dlya-jquery/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 13:11:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Уроки]]></category>

		<guid isPermaLink="false">http://www.jstoolbox.com/?p=501</guid>
		<description><![CDATA[<p>Чаще всего мне приходится писать скрипты под jQuery, и иногда очень удобно реализовывать функциональность путем создания плагина. В этой статье я покажу как это можно сделать. Пример будет тривиальный, но надеюсь понятный. Фунцкиональнось учебного плагина аналогична hover эффекту - при наведении указателя мыши на элемент, его фон меняется, если убрать указатель, то фон меняется на первоначальный (этого можно достичь при помощи CSS, но не забывайте, что это всего-лишь пример).</p>]]></description>
			<content:encoded><![CDATA[<p>Чаще всего мне приходится писать скрипты под jQuery, и иногда очень удобно реализовывать функциональность путем создания плагина. В этой статье я покажу как это можно сделать. Пример будет тривиальный, но надеюсь понятный. Фунцкиональнось учебного плагина аналогична hover эффекту &#8211; при наведении указателя мыши на элемент, его фон меняется, если убрать указатель, то фон меняется на первоначальный (этого можно достичь при помощи CSS, но не забывайте, что это всего-лишь пример).</p>
<p>В основе библиотеки jQuery лежит класс с аналогичным названием <em>jQuery</em> (у него есть псевдоним $). Подобно тому, как классы в JavaScript можно расширять, используя свойство <em>prototype</em>, точно также мы можем расширить функциональность класса <em>jQuery</em>. Именно таким образом и создаются плагины. Поскольку в jQuery для свойства <em>prototype</em> есть псевдоним <em>fn</em>, то он чаще всего и используется для этой цели.</p>
<p><span id="more-501"></span></p>
<p>Наш плагин начинаем следующим образом:</p>
<pre class="prettyprint">
(function($){
    $.fn.backgroundHover = function(options) {
       return this.each(function () {
          // Код плагина
       });
    };
})(jQuery);
</pre>
<p>Первая и последняя строка этого блока представляют собой вызов анонимной функции, единственным аргументом которого будет объект <em>jQuery</em>. В результате, мы получим еще одну область определения переменных (scope), то есть, все переменные и функции, объявленные внутри этой анонимной функции будут недоступны извне (не распространяются на глобальную область видимости <em>window</em>). Поскольку плагин выполняет действия над некоторым множеством элементов DOM в одном вызове, то мы должны обрабатывать все эти элементы в одном цикле. Это делается при помощи функции <em>each</em> в строке 3.</p>
<p>Все плагины способны принимать некоторое количество параметров, выполним эту функциональность следующим образом:</p>
<pre class="prettyprint">
$.fn.backgroundHover = function(options) {
      options = $.extend({
         background: 'red',
      }, options);
</pre>
<p>Все параметры хранятся в переменной <em>options</em>. Для инициализации этой переменной мы используем фунцию <em>$.extend()</em>, первым аргументом которой указываем объект, с параметрами по умолчанию, второй аргумент &#8211; параметры, указанные пользователем. В нашем случае, имеем всего лишь один параметр &#8211; цвет фона (background), по умолчанию он имеет значение red.</p>
<p>Ну и последний шаг &#8211; добавляем функциональность плагина внутрь функции <em>each</em>:</p>
<pre class="prettyprint">
var self = $(this);
   self.mouseover(function() {
      self.oldBG = self.css('backgroundColor');
      self.css('backgroundColor',options.background);
   });

   self.mouseout(function() {
      self.css('backgroundColor',self.oldBG);
   });
</pre>
<p>В первой строке мы создаем переменную <em>self</em>, которая будет ссылаться на текущий элемент DOM. Для всех выбранных элементов будут добавлены два обработчика событий &#8211; mouseover и mouseout, которые будут менять цвет фона в соответсвии с параметром <em>options.background</em>.</p>
<p>На этом создание плагина закончено, используется он следующим образом:</p>
<pre class="prettyprint">
$('.someNodes').backgroundHover({background: "#fce"});
</pre>
<p>Исходный код плагина можно посмотреть здесь: <a href="http://www.jstoolbox.com/js/background.jquery.js" rel="nofollow">background.jquery.js</a>.</p>
<p><a href="http://www.jstoolbox.com/demo/jqplugin/" class="demo">Демо пример</a><a href="http://blog.slackers.se/2009/09/how-to-create-jquery-plugin.html" class="external">Источник</a></p>
<div class="postLinks"><strong>При поддержке:</strong><br/><br />
<a href="http://majkop.job.ru/">http://majkop.job.ru/</a> &#8211; работа в Майкопе<br/><a href="http://foreign.domania.ru/">http://foreign.domania.ru/</a> &#8211; зарубежная недвижимость<br/><a href="http://obninsk.domania.ru/">http://obninsk.domania.ru/</a> &#8211; недвижимость в обнинске</div>
]]></content:encoded>
			<wfw:commentRss>http://www.jstoolbox.com/2009/10/03/kak-sozdat-plagin-dlya-jquery/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>jQuery на Microsoft CDN</title>
		<link>http://www.jstoolbox.com/2009/09/30/jquery-na-microsoft-cdn/</link>
		<comments>http://www.jstoolbox.com/2009/09/30/jquery-na-microsoft-cdn/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 18:37:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CDN]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Новости]]></category>

		<guid isPermaLink="false">http://www.jstoolbox.com/?p=495</guid>
		<description><![CDATA[Компания Microsoft по всей видимости идет шагами Google в вопросе размещения популярных JavaScript библиотек на своем CDN. Вместо того, чтобы размещать библиотеку jQuery на своем сайте, вы можете указывать напрямую на URL CDN-а.]]></description>
			<content:encoded><![CDATA[<p>Компания Microsoft по всей видимости идет шагами Google в вопросе размещения популярных JavaScript библиотек на своем CDN (<a href="http://en.wikipedia.org/wiki/Content_delivery_network">Content Delivery Network</a>). Вместо того, чтобы размещать библиотеку jQuery на своем сайте, вы можете указывать напрямую на URL CDN-а. Например для jQuery используйте следующие адреса:</p>
<pre class="prettyprint">
http://ajax.Microsoft.com/ajax/jQuery/jquery-1.3.2.js
http://ajax.Microsoft.com/ajax/jQuery/jquery-1.3.2.min.js
http://ajax.Microsoft.com/ajax/jQuery/jquery-1.3.2-vsdoc.js
http://ajax.Microsoft.com/ajax/jQuery/jquery-1.3.2.min-vsdoc.js
</pre>
<p><span id="more-495"></span></p>
<p>Помимо основной библиотеки, на CDN можно также найти и плагин для валидации форм <a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/" title="jQuery Validate Plugin">jQuery Validate</a>, статью о котором я писал <a href="http://www.jstoolbox.com/2008/03/19/proverka-dannyx-form-jquery-validation-plugin/" title="Проверка данных форм – jQuery Validation Plugin">ранее</a>:</p>
<pre class="prettyprint">
http://ajax.microsoft.com/ajax/jquery.validate/1.5.5/jquery.validate.js
http://ajax.microsoft.com/ajax/jquery.validate/1.5.5/jquery.validate.min.js
http://ajax.microsoft.com/ajax/jquery.validate/1.5.5/jquery.validate-vsdoc.js
</pre>
<p>Ну и уж совершенно очевидно, что на своем CDN-е Microsoft также разместил свою библиотеку Microsoft Ajax, полный список файлов которой, вы можете просмотреть здесь: <a href="http://www.asp.net/ajax/cdn/">http://www.asp.net/ajax/cdn/</a>.</p>
<div class="postLinks"><strong>При поддержке:</strong><br/><br />
<a href="http://www.vladivostok.automania.ru/">http://www.vladivostok.automania.ru/</a> &#8211; автомобили владивосток<br/><a href="http://7ls.ru/browse.php?cat=51">http://7ls.ru/browse.php?cat=51</a> &#8211; как писать стихи<br/><a href="http://ad-auto.ru/">http://ad-auto.ru/</a> &#8211; подержанные автомобили</div>
]]></content:encoded>
			<wfw:commentRss>http://www.jstoolbox.com/2009/09/30/jquery-na-microsoft-cdn/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
