<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://dotnet.lv/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Andrejs Mamontovs : JavaScript</title><link>http://dotnet.lv/blogs/am/archive/tags/JavaScript/default.aspx</link><description>Tagi: JavaScript</description><dc:language>en</dc:language><generator>CommunityServer 2008 SP1 (Build: 30619.63)</generator><item><title>RxJS (Reactive Extensions JavaScript) pielietojuma piemērs</title><link>http://dotnet.lv/blogs/am/archive/2010/04/24/rxjs-reactive-extensions-javascript-pielietojuma-piem-rs.aspx</link><pubDate>Sat, 24 Apr 2010 13:30:20 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:13321</guid><dc:creator>andrejs.mamontovs</dc:creator><slash:comments>17</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/am/rsscomments.aspx?PostID=13321</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/am/commentapi.aspx?PostID=13321</wfw:comment><comments>http://dotnet.lv/blogs/am/archive/2010/04/24/rxjs-reactive-extensions-javascript-pielietojuma-piem-rs.aspx#comments</comments><description>&lt;p&gt;&lt;font size="3" face="cali"&gt;Sveicināti,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cali"&gt;Pavisam nesen biju iemūžinājis saiti uz prezentāciju par &lt;/font&gt;&lt;a href="http://www.dotnet.lv/blogs/am/archive/2010/03/31/reactive-extensions-prezent-cija.aspx"&gt;&lt;em&gt;&lt;font size="3" face="cali"&gt;Rx(Reactive Extensions)&lt;/font&gt;&lt;/em&gt;&lt;/a&gt;&lt;font size="3" face="cali"&gt;. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;em&gt;Rx&lt;/em&gt; projekts nāk no &lt;em&gt;Microsoft&lt;/em&gt; izpētes komandas. Projekta pamatā ir doma, ka visas darbības var uzvērt kā datubāzi(man patīk vairāk datu avots). Piemēram, datora pele ir nekas cits, kā datu avots. Katru mirkli tās raida informāciju par sava stāvokļa izmaiņām. Datorā ar ierīces draivera palīdzību šie te dati nepārtraukti tiek apstrādāti, un pārraidīti tālāk. Šo te principu var pārnest uz programmēšanas platformu. &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cali"&gt;Piemēram, datu iegūšana no interneta vietnes(datu avots). Vaicājumi pēc datiem ir asinhrons process. Var paiet ilgs laiks no pieprasījuma nosūtīšanas līdz brīdim kad tiek saņemta atbildes. Nav svarīgi vai tā ir pelīte vai komunikācijas protokols vai vel kas, svarīgi būtu iegūt savā rīcībā vienotu veidu, kādā programmēt signāla pārraidi, saņemšanu, filtrāciju un apstrādi. Šiem te mērķiem arī kalpo &lt;em&gt;.NET&lt;/em&gt; videi rakstīta &lt;em&gt;Rx&lt;/em&gt; bibliotēka, un arī tas &lt;em&gt;JavaScript&lt;/em&gt; versija. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cali"&gt;Uz piemēra pacentīšos parādīt idejas spēku! &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cali"&gt;Nospraudīsim darba uzdevumu: &lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font size="3" face="cali"&gt;Nepieciešams parakstīties uz ASP.NET AJAX asinhronu datu nosūtīšanu uz serveri.&lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font size="3" face="cali"&gt;Realizācija&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cali"&gt;     &lt;br /&gt;&lt;/font&gt;&lt;font size="3" face="cali"&gt;Izstrādātāji, kas ir pazīstami ar ASP.NET noteikti pazīst &lt;em&gt;ScriptManager&lt;/em&gt; kontroli. Kontrolei ir visai noteikt mērķis, nodrošinās AJAX funkcionalitāti gan servera gan klienta pusē.&lt;/font&gt;&lt;/p&gt;  &lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;asp&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;:&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;ScriptManager &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;ID&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;=&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;scriptManager&amp;quot; &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;runat&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;=&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;server&amp;quot; &lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;/&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Ar šīs kontroles starpniecību pavērās iespēja piekļūt pie AJAX JavaScript API dažādām manipulācijām ar datiem. Manā gadījumā, iespēju noteikt brīdi, kad tiek nosūtīts asinhronais pieprasījums, un tiek saņemta atbildes. Zemāk kods, ar kura palīdzību var parakstīties uz nosūtīšanas notikumu.&lt;/font&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;i &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Sys&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;WebForms&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;PageRequestManager&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;getInstance&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;();
&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;i&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;add_beginRequest&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;() {});
&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Līdzīgā veida var parakstīties vel uz vairākiem citiem notikumiem.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Kā jau rakstīju, būtu lieliski, ja notikumu apstrāde būtu vienādota, nav svarīgi vai apstrādāšu pelītes kustību, vai pieprasu datus, vai veicu vel kādu citu darbību.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Tātad pirmajā soli pievienojam &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx"&gt;&lt;font size="3" face="cali"&gt;RxJS&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="cali"&gt; bibliotēku savā kodā.
    &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;script &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;type&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;=&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;text/javascript&amp;quot; &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;src&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;=&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:black;color:#a5e02d;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;=ResolveUrl(&amp;quot;~/Content/rx.js&amp;quot;) &lt;/span&gt;&lt;span style="background:black;color:#a5e02d;"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;script&lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;No šī brīža vara sākt rakstīt kodu, tā saucamo signālu avotu. &lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;RequestObservable &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;{
    &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Create&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;: &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;() {
        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;return &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Rx&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Observable&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Create&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;obs&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;) {
            &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;with &lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Sys&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;WebForms&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;PageRequestManager&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;getInstance&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;()) {
                &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;add_beginRequest&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;() {
                    &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;obs&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;OnNext&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;false&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;);
                });

                &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;add_endRequest&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;() {
                    &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;obs&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;OnNext&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;true&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;);
                });
            }

            &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;return &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;{}

        });
    }
};&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Izveidoju objektu &lt;em&gt;RequestObservable&lt;/em&gt; ar vienīgo metodi &lt;em&gt;Create&lt;/em&gt;, kas atgriezīs man tā saucamo Push stila kolekciju. Tas tiek panākts ar &lt;em&gt;Rx.Observable.Create&lt;/em&gt; izsaukuma rezultāta atgriešanu. Rx.Observable.Create metodei, kā arguments tiek padota funkcija. Tas ķermenī notiek parakstīšanās uz &lt;em&gt;ASP.NET AJAX&lt;/em&gt; notikumiem &lt;em&gt;add_beginRequest&lt;/em&gt; un &lt;em&gt;add_endRequest&lt;/em&gt;. Tanī brīdī, kad šie notikumi izpildīsies, tiks raidīts signāls ar atšķirīgiem argumentiem. Manā gadījumā tie ir &lt;em&gt;true/false&lt;/em&gt;.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Pēc signāla avota izveides, veidojam signāla apstrādes funkcionalitāti. &lt;/font&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;$&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;document&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;).&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;ready&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(
    &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;() {
        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;request &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;RequestObservable&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Create&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;();

        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;open &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;request&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Throttle&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:cyan;"&gt;250&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;).&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Where&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;e&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;) { &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;return &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;e &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;=== &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;false&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;; });
        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;close &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;request&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Where&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;e&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;) { &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;return &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;e &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;=== &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;true&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;; });

        &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;open&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Subscribe&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;() {
            &lt;/font&gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#756f51;"&gt;&lt;font size="3" face="cali"&gt;// Kods
        &lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;});

        &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;close&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Subscribe&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;() {
            &lt;/font&gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#756f51;"&gt;&lt;font size="3" face="cali"&gt;// Kods
        &lt;/font&gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;});
    }
);
&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Izmantoju &lt;em&gt;jQuery&lt;/em&gt; lai parakstītos uz lapas ielasīšanu&lt;em&gt;(metodes ready izsaukšana)&lt;/em&gt;. Pēc lapas ielasīšanas veidojam signāla avotu.&lt;/font&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;request &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;RequestObservable&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Create&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;();&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Nākamajā solī nodefinēju divus filtrus, kuri veiks signāla šķirošanu. &lt;/font&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;font size="3" face="cali"&gt;open filtrs atlasīs pieprasīja nosūtīšanu, nolasot tikai signālu, kuri ir pēdējie 250 milisekunžu laikā(metode Throttle).&lt;/font&gt;&lt;/li&gt;

  &lt;li&gt;&lt;font size="3" face="cali"&gt;Otrs, close filtrs atlasīs atbildēs saņemšanas signālus.&lt;/font&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;open &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;request&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Throttle&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:cyan;"&gt;250&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;).&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Where&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;e&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;) { &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;return &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;e &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;=== &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;false&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;; });
&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;close &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;request&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Where&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;e&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;) { &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;return &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;e &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;=== &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;true&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;; });
&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Pēdējais solis, atliek tikai parakstīties uz notikumiem.&lt;/font&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;open&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Subscribe&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;() {
    &lt;/font&gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#756f51;"&gt;&lt;font size="3" face="cali"&gt;// Kods
&lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;});

&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;close&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Subscribe&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;() {
    &lt;/font&gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#756f51;"&gt;&lt;font size="3" face="cali"&gt;// Kods
&lt;/font&gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;});
&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;Šinī rakstā centos parādīt maksimāli pietuvinātu dzīvei piemēru. Tas ir tikai viens scenārijs no daudziem.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;Cerams, ka noderēs!&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;&lt;em&gt;Gaidīšu jūsu komentārus, labprāt atbildēšu uz visiem jautājumiem!&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=13321" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/am/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://dotnet.lv/blogs/am/archive/tags/Rx/default.aspx">Rx</category><category domain="http://dotnet.lv/blogs/am/archive/tags/RxJs/default.aspx">RxJs</category></item><item><title>JavaScript Intellisense uzlabojums Visual Studio 2010</title><link>http://dotnet.lv/blogs/am/archive/2010/04/13/javascript-intellisense-uzlabojums-visual-studio-2010.aspx</link><pubDate>Tue, 13 Apr 2010 18:59:20 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:13017</guid><dc:creator>andrejs.mamontovs</dc:creator><slash:comments>15</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/am/rsscomments.aspx?PostID=13017</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/am/commentapi.aspx?PostID=13017</wfw:comment><comments>http://dotnet.lv/blogs/am/archive/2010/04/13/javascript-intellisense-uzlabojums-visual-studio-2010.aspx#comments</comments><description>&lt;p&gt;&lt;font size="3" face="ca"&gt;Sveicināti,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;em&gt;Visual Studio 2010 &lt;/em&gt;kļūst vel draudzīgāka pret Web izstrādātājiem. Ir uzlabots JavaScript Intellisense, kas tagad spēj analizēt &lt;em&gt;JavaScript&lt;/em&gt; kodu.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="ca"&gt;Zemāk redzams neliels vizuāls piemērs:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/am/VS2010JavaScriptIntellisense_5F00_08F06BD5.png" rel="lightbox"&gt;&lt;font color="#000000" size="3" face="ca"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="VS2010JavaScriptIntellisense" border="0" alt="VS2010JavaScriptIntellisense" src="http://www.dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/am/VS2010JavaScriptIntellisense_5F00_thumb_5F00_2FBE8215.png" width="643" height="324" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="ca"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="ca"&gt;Kā redzams, koda analīze darbojās, izlecošā sarakstā parādās manis definētā metode – “&lt;em&gt;Do”&lt;/em&gt; un lauks “&lt;em&gt;Text”&lt;/em&gt;. Pagaidām, ar visiem maniem testiem &lt;em&gt;Visual Studio&lt;/em&gt; lieliski tiek galā. Tagad es varu rakstīt kodu daudz precīzāk un ātrāk.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="ca"&gt;Cerams ka noderēs!&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="ca"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=13017" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/am/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://dotnet.lv/blogs/am/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category></item><item><title>Reactive Extensions prezentācija</title><link>http://dotnet.lv/blogs/am/archive/2010/03/31/reactive-extensions-prezent-cija.aspx</link><pubDate>Wed, 31 Mar 2010 21:47:29 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:12679</guid><dc:creator>andrejs.mamontovs</dc:creator><slash:comments>31</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/am/rsscomments.aspx?PostID=12679</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/am/commentapi.aspx?PostID=12679</wfw:comment><comments>http://dotnet.lv/blogs/am/archive/2010/03/31/reactive-extensions-prezent-cija.aspx#comments</comments><description>&lt;p&gt;&lt;font size="3" face="cal"&gt;Sveicināti,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cal"&gt;Šoreiz iemūžināšu saiti uz Reactive Extensions precentāciju(&lt;/font&gt;&lt;a title="http://live.visitmix.com/MIX10/Sessions/FTL01" href="http://live.visitmix.com/MIX10/Sessions/FTL01"&gt;&lt;font size="3" face="cal"&gt;http://live.visitmix.com/MIX10/Sessions/FTL01&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="cal"&gt;), kuru pasniedz &lt;a href="http://en.wikipedia.org/wiki/Erik_Meijer_(computer_scientist)"&gt;Erik Meijer&lt;/a&gt;. Šī konkrētā versija tika pasniegta &lt;a href="http://live.visitmix.com/"&gt;MIX 2010&lt;/a&gt; ietvaros. Es personīgi šo te prezentāciju apmeklēju &lt;a href="http://www.mvpsummit2010.com/"&gt;Microsoft Global Summit 2010&lt;/a&gt; laikā. Raksturošu to tikai ar vienu vārdu – neaizmirstami. Pateikšu vairāk - Ēriks ir viens no tiem cilvēkiem, kas patiešām ir uzticīgs savai profesijai, un spēj aizraut visus klātesošos ar tām idejām, pie kurām darbojās viņa komanda.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Cerams noderēs!&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=12679" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/am/archive/tags/OOP/default.aspx">OOP</category><category domain="http://dotnet.lv/blogs/am/archive/tags/Patterns/default.aspx">Patterns</category><category domain="http://dotnet.lv/blogs/am/archive/tags/Arhitekt_6B01_ra/default.aspx">Arhitektūra</category><category domain="http://dotnet.lv/blogs/am/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://dotnet.lv/blogs/am/archive/tags/Rx/default.aspx">Rx</category></item><item><title>jQuery aktuālās versijas izmantošana</title><link>http://dotnet.lv/blogs/am/archive/2010/03/30/jquery-aktu-l-s-versijas-izmanto-ana.aspx</link><pubDate>Tue, 30 Mar 2010 19:53:23 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:12603</guid><dc:creator>andrejs.mamontovs</dc:creator><slash:comments>30</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/am/rsscomments.aspx?PostID=12603</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/am/commentapi.aspx?PostID=12603</wfw:comment><comments>http://dotnet.lv/blogs/am/archive/2010/03/30/jquery-aktu-l-s-versijas-izmanto-ana.aspx#comments</comments><description>&lt;p&gt;&lt;font size="3" face="ca"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="ca"&gt;Sveicināti,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="ca"&gt;Šoreiz vēlos iemūžināt vienu noderīgu Html koda fragmentu, lai izstrādes laikā vienmēr tiktu lietota uz šo te brīdi aktuālā &lt;/font&gt;&lt;font size="3" face="ca"&gt;&lt;a href="http://www.jquery.com/"&gt;&lt;em&gt;jQuery&lt;/em&gt;&lt;/a&gt; versija. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="ca"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;script &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;type&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;=&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;text/javascript&amp;quot; &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;src&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;=&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;http://code.jquery.com/jquery-latest.js&amp;quot;&lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;script&lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;&lt;font size="3" face="ca"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="ca"&gt;Protams tas neatbrīvo no nepieciešamības produkcijas versijā tomēr pārslēgties uz lokālo faila versiju.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;Cerams noderēs!&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="ca"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="ca"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=12603" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/am/archive/tags/Patterns/default.aspx">Patterns</category><category domain="http://dotnet.lv/blogs/am/archive/tags/Arhitekt_6B01_ra/default.aspx">Arhitektūra</category><category domain="http://dotnet.lv/blogs/am/archive/tags/jQuery/default.aspx">jQuery</category><category domain="http://dotnet.lv/blogs/am/archive/tags/JavaScript/default.aspx">JavaScript</category></item><item><title>Microsoft IE 8 XDomainRequest</title><link>http://dotnet.lv/blogs/am/archive/2009/04/08/microsoft-ie-8-xdomainrequest.aspx</link><pubDate>Wed, 08 Apr 2009 19:17:07 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:2950</guid><dc:creator>andrejs.mamontovs</dc:creator><slash:comments>24</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/am/rsscomments.aspx?PostID=2950</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/am/commentapi.aspx?PostID=2950</wfw:comment><comments>http://dotnet.lv/blogs/am/archive/2009/04/08/microsoft-ie-8-xdomainrequest.aspx#comments</comments><description>&lt;p&gt;&lt;font size="3" face="ca"&gt;Sveicināti,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="ca"&gt;Turpinot iesākto tēmu par Microsoft IE 8 jaunumiem no programmētāja stata punkta. Šoreiz, par iespēju veikt asinhronos vaicājumus uz citu domēnu no &lt;strong&gt;&lt;em&gt;JavaScript&lt;/em&gt;&lt;/strong&gt;. Līdz nesenam laikam, modernajos pārlūkos pastāvēja ierobežojums, veidot vaicājumus tikai sava domēna ietvaros. Drīzumā šis ierobežojums tiks likvidēts. Bet par visu pēc kārtas.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="ca"&gt;IE 8 pārlūkā no JavaScript ir pieejams jauns objekts &lt;em&gt;&lt;strong&gt;XDomainRequest&lt;/strong&gt;&lt;/em&gt;. Objekts nodrošina šo te komunikāciju starp domēniem. Apskatīsim, kā tas darbojās uz piemēra&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="ca"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;html &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;xmlns&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;=&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;head&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;title&lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;title&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;

    &amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;script &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;type&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;=&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;

        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;getData&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;() {

            &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;xdr &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;new &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;XDomainRequest&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;();
            &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;xdr&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;open&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;get&amp;quot;&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;, &lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;http://www.getdate.com/getdate.aspx&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;);

            &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;xdr&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;onload &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;() {
                &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;document&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;getElementById&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;#39;content&amp;#39;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;).&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;innerHTML &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;br /&gt;                    &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;toStaticHTML&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;xdr&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;responseText&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;);
            }

            &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;xdr&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;send&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;();
        }

    &lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;script&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;

&amp;lt;/&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;head&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;body&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;button &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;onclick&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;=&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;getData();&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;
        &lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;Get date&lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;button&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;div &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;id&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;=&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;content&amp;quot;&lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;div&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;body&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;html&lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;&lt;font size="3" face="ca"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="ca"&gt;Uzrakstīju nelieku &lt;strong&gt;&lt;em&gt;HTML&lt;/em&gt;&lt;/strong&gt; kodu, pēc noklusējuma uz ekrāna parādās poga ar tekstu &lt;em&gt;&lt;strong&gt;“Get date”&lt;/strong&gt;&lt;/em&gt;. Nospiežot pogu, tiek izsaukta metode &lt;strong&gt;&lt;em&gt;“getData”&lt;/em&gt;&lt;/strong&gt;. Tie izveidots objekts &lt;strong&gt;&lt;em&gt;XDomainRequest&lt;/em&gt;&lt;/strong&gt;. Ar &lt;em&gt;&lt;strong&gt;“open”&lt;/strong&gt;&lt;/em&gt; metodes palīdzību, tiek izveidots savienojums ar citu domēna serveri. Parakstāmies uz notikumu &lt;em&gt;&lt;strong&gt;“onload”&lt;/strong&gt;&lt;/em&gt;, saņemtās atbildes saturu ievietojam elementā &lt;em&gt;&lt;strong&gt;DIV&lt;/strong&gt;&lt;/em&gt; ar nosaukumu &lt;em&gt;&lt;strong&gt;“content”&lt;/strong&gt;&lt;/em&gt;. Šinī vietā jāpiemin jauna IE 8 metode &lt;em&gt;&lt;strong&gt;“toStaticHTML”&lt;/strong&gt;&lt;/em&gt;, ar tās palīdzību kods tiek pasargāts no iespējamās &lt;em&gt;&lt;strong&gt;JavaScript&lt;/strong&gt;&lt;/em&gt; injekcijas(Injection). Vienkārši sakot, no satura tiek izmesti visi skripti un skriptu izsaukumi. Manu kodu noslēdz metodes &lt;em&gt;&lt;strong&gt;“send”&lt;/strong&gt;&lt;/em&gt; izsaukums. Tātad pieprasījums ir nosūtīts. No klienta puses tas arī vienkāršā gadījumā arī viss.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;Servera pusē, servera atbildei ir jāpievieno iesākums &lt;strong&gt;&lt;em&gt;(Header)&lt;/em&gt;&lt;/strong&gt;&amp;#160;&lt;strong&gt;&lt;em&gt; (Response.AddHeader(&amp;quot;Access-Control-Allow-Origin&amp;quot;, &amp;quot;*&amp;quot;)&lt;/em&gt;&lt;/strong&gt;. Tādā veidā tiek pateikt, ka tiek atbalstīts starp domēnu izsaukums. Zvaigznītes vietā var norādīt arī konkrētu domēnu.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;Pielikumā pievienoju &lt;em&gt;Visual Studio&lt;/em&gt; projektu, lai to notestētu uz sava datora.&lt;/font&gt;&lt;/p&gt;

&lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:10b8b483-a44f-4d8c-934a-075f93357019" class="wlWriterEditableSmartContent"&gt;&lt;p&gt; &lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/am/XDomainRequestDemo_5F00_72DACC0B.zip" target="_blank"&gt;XDomainRequestDemo&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;P.S. Pirms palaist piemēru modificējies Windows host failu, lai domēns &lt;a href="http://www.getdate.com"&gt;www.getdate.com&lt;/a&gt; tiktu piesaistīts localhost.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Cerams noderēs!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=2950" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/am/archive/tags/OOP/default.aspx">OOP</category><category domain="http://dotnet.lv/blogs/am/archive/tags/Arhitekt_6B01_ra/default.aspx">Arhitektūra</category><category domain="http://dotnet.lv/blogs/am/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://dotnet.lv/blogs/am/archive/tags/ASP.NET+AJAX/default.aspx">ASP.NET AJAX</category><category domain="http://dotnet.lv/blogs/am/archive/tags/IE+8/default.aspx">IE 8</category></item><item><title>IE 8 tiešsaistes / nesaistes noteikšana izmantojot JavaScript</title><link>http://dotnet.lv/blogs/am/archive/2009/04/02/ie-8-tie-saistes-nesaistes-noteik-ana-izmantojot-javascript.aspx</link><pubDate>Thu, 02 Apr 2009 20:27:39 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:2927</guid><dc:creator>andrejs.mamontovs</dc:creator><slash:comments>27</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/am/rsscomments.aspx?PostID=2927</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/am/commentapi.aspx?PostID=2927</wfw:comment><comments>http://dotnet.lv/blogs/am/archive/2009/04/02/ie-8-tie-saistes-nesaistes-noteik-ana-izmantojot-javascript.aspx#comments</comments><description>&lt;p&gt;&lt;font size="3" face="cal"&gt;Sveicināti,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cal"&gt;Esam sagaidījuši jauno &lt;em&gt;&lt;strong&gt;Microsoft Internet Explorer&lt;/strong&gt;&lt;/em&gt; versiju. Jaunajai versijai ir daudz interesantu iespēju, bet par tam citreiz. Šoreiz par iespēju noteikt, kādā režīmā &lt;strong&gt;&lt;em&gt;(Online/Offline)&lt;/em&gt;&lt;/strong&gt; darbojās &lt;strong&gt;&lt;em&gt;IE&lt;/em&gt;&lt;/strong&gt; no &lt;em&gt;&lt;strong&gt;JavaScript&lt;/strong&gt;&lt;/em&gt;. Lai maksimāli ātri nodemonstrēt šo iespēju, uzrakstīju nelielu piemēru. &lt;/font&gt;&lt;/p&gt;  &lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="cal"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;html &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;xmlns&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;=&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cal"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;head&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cal"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;title&lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;Online/Offline test&lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;title&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cal"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;

&amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;script &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;type&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;=&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cal"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;


&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;window&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;onload &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cal"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;() {

    &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;window&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;document&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;body&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;ononline &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cal"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;() {
        &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;alert&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;#39;Online&amp;#39;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cal"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;); 
    }

    &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;window&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;document&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;body&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;onoffline &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cal"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;() {
        &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;alert&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;#39;Offline&amp;#39;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cal"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;); 
    }
}

&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;alert&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;IsOnline:&amp;quot; &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;+ &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;window&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;navigator&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;onLine&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cal"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;)


&lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;script&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cal"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;

&amp;lt;/&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;head&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cal"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;

&amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;body&lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;body&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cal"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;html&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&lt;font size="3" face="cal"&gt;&amp;gt;
&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;font size="3" face="cal"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cal"&gt;Ideja ir sekojoša, BODY elementam parādījās divi jauni notikumi &lt;strong&gt;&lt;em&gt;ononline&lt;/em&gt;&lt;/strong&gt; un &lt;strong&gt;&lt;em&gt;onoffline&lt;/em&gt;&lt;/strong&gt;. Parakstoties uz kādu no tiek, jūsu rakstītais kods nepalaidīs garām brīdi, kad notiek pazīmes &lt;em&gt;&lt;strong&gt;Work Offline(&lt;strong&gt;&lt;em&gt;File –&amp;gt; Work Offline&lt;/em&gt;&lt;/strong&gt;)&lt;/strong&gt;&lt;/em&gt; izmaiņa. Tā pat, jūsu kodā pastāv iespēja noskaidros, vai pārlūks darbojās tiešsaistes režīmā izmantojot &lt;strong&gt;&lt;em&gt;window.navigator.onLine&lt;/em&gt;&lt;/strong&gt; pazīmi. Šis konstrukcijas manā skatījumā var būt noderīgas tīmekļu vietnēs, kuras izmanto AJAX iespējas. Tādā veidā brīdinot lietotāju, netiks veikti pieprasījumi uz serveri.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;Cerams noderēs!&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=2927" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/am/archive/tags/Patterns/default.aspx">Patterns</category><category domain="http://dotnet.lv/blogs/am/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://dotnet.lv/blogs/am/archive/tags/ASP.NET+AJAX/default.aspx">ASP.NET AJAX</category><category domain="http://dotnet.lv/blogs/am/archive/tags/IE+8/default.aspx">IE 8</category></item><item><title>JavaScriptSerializer (System.Web.Extensions.dll)</title><link>http://dotnet.lv/blogs/am/archive/2009/01/03/javascriptserializer-system-web-extensions-dll.aspx</link><pubDate>Sat, 03 Jan 2009 21:47:32 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:2452</guid><dc:creator>andrejs.mamontovs</dc:creator><slash:comments>25</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/am/rsscomments.aspx?PostID=2452</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/am/commentapi.aspx?PostID=2452</wfw:comment><comments>http://dotnet.lv/blogs/am/archive/2009/01/03/javascriptserializer-system-web-extensions-dll.aspx#comments</comments><description>&lt;p&gt;&lt;font face="Calibri" size="3"&gt;Labvakar,&lt;/font&gt; &lt;p&gt;&lt;font face="Calibri" size="3"&gt;Jaunais gads ir sagaidīts, laiks sākt strādāt ņemot piemēru no Stahanoviešiem:) Iespējams tādā veidā arī glābsim mūsu valsti!&lt;/font&gt; &lt;p&gt;&lt;font face="Calibri" size="3"&gt;Šoreiz par vienu interesantu klasi (&lt;i&gt;JavaScriptSerializer&lt;/i&gt;), to var atrāst &lt;i&gt;System.Web.Extensions.dll &lt;/i&gt;kompilācijā. Klases galvenais uzdevums, objektu, kas izveidots Microsoft.NET vidē aprakstīt &lt;i&gt;JavaScript&lt;/i&gt; saprotamā formā (Json). Pārveidošana notiek abos virzienos. Šī te klase tiek pielietota &lt;em&gt;ASP.NET AJAX&lt;/em&gt; un topošā &lt;em&gt;Microsoft ASP.NET MVC&lt;/em&gt;. &lt;/font&gt; &lt;p&gt;&lt;font face="Calibri" size="3"&gt;Apskatīsim piemēru.&lt;/font&gt; &lt;p&gt;&lt;font face="Calibri" size="3"&gt;Uzrakstīsim vienkāršu klasi. &lt;/font&gt;&lt;pre class="code"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font face="Calibri" size="3"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#413e2e;"&gt;&lt;font face="Calibri" size="3"&gt;/// &amp;lt;summary&amp;gt;
    /// &lt;/font&gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#756f51;"&gt;&lt;font face="Calibri" size="3"&gt;The black box
    &lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#413e2e;"&gt;/// &amp;lt;/summary&amp;gt;
    &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;public class &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;&lt;font face="Calibri" size="3"&gt;BlackBox
    &lt;/font&gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font face="Calibri" size="3"&gt;{
        &lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#413e2e;"&gt;/// &amp;lt;summary&amp;gt;
        /// &lt;/span&gt;&lt;span style="background:#10100d;color:#756f51;"&gt;Initializes a new instance of the &lt;/span&gt;&lt;span style="background:#10100d;color:#413e2e;"&gt;&amp;lt;see cref=&lt;/span&gt;&lt;span style="background:#10100d;color:#756f51;"&gt;&amp;quot;BlackBox&amp;quot;&lt;/span&gt;&lt;span style="background:#10100d;color:#413e2e;"&gt;/&amp;gt; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#756f51;"&gt;&lt;font face="Calibri" size="3"&gt;class.
        &lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#413e2e;"&gt;/// &amp;lt;/summary&amp;gt;
        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;public &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;BlackBox&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;()
        {
            &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Description &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;Class description&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;;
            &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;this&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;List &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;new&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;[] {&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;Apple&amp;quot;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;, &lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;Orange&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font face="Calibri" size="3"&gt;};
        }

        &lt;/font&gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#413e2e;"&gt;&lt;font face="Calibri" size="3"&gt;/// &amp;lt;summary&amp;gt;
        /// &lt;/font&gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#756f51;"&gt;&lt;font face="Calibri" size="3"&gt;Gets or sets the description.
        &lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#413e2e;"&gt;/// &amp;lt;/summary&amp;gt;
        /// &amp;lt;value&amp;gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#756f51;"&gt;The description.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#413e2e;"&gt;&amp;lt;/value&amp;gt;
        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;public string &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;&lt;font face="Calibri" size="3"&gt;Description
        &lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;{
            &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;get&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;; &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;set&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font face="Calibri" size="3"&gt;;
        }

        &lt;/font&gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#413e2e;"&gt;&lt;font face="Calibri" size="3"&gt;/// &amp;lt;summary&amp;gt;
        /// &lt;/font&gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#756f51;"&gt;&lt;font face="Calibri" size="3"&gt;Gets or sets the list.
        &lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#413e2e;"&gt;/// &amp;lt;/summary&amp;gt;
        /// &amp;lt;value&amp;gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#756f51;"&gt;The list.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#413e2e;"&gt;&amp;lt;/value&amp;gt;
        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;public string&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;[] &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;&lt;font face="Calibri" size="3"&gt;List
        &lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;{
            &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;get&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;; &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;set&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font face="Calibri" size="3"&gt;;
        }
    }
&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;&lt;font face="Calibri" size="3"&gt;Izveidosim objektu &lt;/font&gt;&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;blackBox &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;new &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;BlackBox&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;();&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;&lt;font face="Calibri" size="3"&gt;Šo te objektu ir nepieciešamība nosūtīt uz klientu, gan arī saņemt no klienta. Šim te nolūkam izveidosim paplašinošas metodes tipam objekts(object) un kopai(string)&lt;/font&gt;&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;using &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;System&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Web&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Script&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Serialization&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;;

&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;public static class &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;&lt;font face="Calibri" size="3"&gt;Helpers
&lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;{
    &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;public static string &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;ObjectToJson&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;this object &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;obj&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;)
    {
        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;o &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;new &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;JavaScriptSerializer&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;();
        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;return &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;o&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Serialize&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;obj&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;);
    }

    &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;public static &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;T JsonToObject&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;T&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;this string &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;str&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;)
    {
        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;o &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;new &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;JavaScriptSerializer&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;();
        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;return &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;o&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Deserialize&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;T&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;str&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font face="Calibri" size="3"&gt;);
    }
}&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;&lt;font face="Calibri" size="3"&gt;Tagad esam gatavi manipulēt ar datiem.&lt;/font&gt;
&lt;p&gt;&lt;font face="Calibri" size="3"&gt;Datu raidīšanu uz klientu var veikt šādi.&lt;/font&gt;&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;blackBox &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;new &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;BlackBox&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;();
&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;blackBox&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;ObjectToJson&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;();
&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Response&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;ContentType &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;application/json&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;;
&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Response&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Write&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font face="Calibri" size="3"&gt;);
&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;&lt;font face="Calibri" size="3"&gt;Uz klientu objekts nonāk lūk šādā te formā, tie kas labi pazīstami ar JavaScript noteikti atpazīst pierakta formu. Starp citu JavaScriptā viss ir Hashtable;)&lt;/font&gt;&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;{&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;Description&amp;quot;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;:&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;Class description&amp;quot;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;,&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;List&amp;quot;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;:[&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;Apple&amp;quot;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;,&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;Orange&amp;quot;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;]} &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&amp;nbsp; &lt;p&gt;&lt;font face="Calibri" size="3"&gt;Savukārt saņemto datu apstrāde no klienta var veikt šādi.&lt;/font&gt;&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;jsonString &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;{\&amp;quot;Description\&amp;quot;:\&amp;quot;Class description from client\&amp;quot;,\&amp;quot;List\&amp;quot;:[\&amp;quot;Lemon\&amp;quot;]}&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;;
&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;o &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;jsonString&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;JsonToObject&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;BlackBox&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font face="Calibri" size="3"&gt;();
&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;&lt;font face="Calibri" size="3"&gt;Tātad visai elementāri atrisinām komunikāciju starp &lt;i&gt;JavaScript&lt;/i&gt; un &lt;i&gt;ASP.NET&lt;/i&gt;.&lt;/font&gt;
&lt;p&gt;&lt;font face="Calibri" size="3"&gt;Cerams noderēs!&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=2452" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/am/archive/tags/CSharp/default.aspx">CSharp</category><category domain="http://dotnet.lv/blogs/am/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://dotnet.lv/blogs/am/archive/tags/OOP/default.aspx">OOP</category><category domain="http://dotnet.lv/blogs/am/archive/tags/Patterns/default.aspx">Patterns</category><category domain="http://dotnet.lv/blogs/am/archive/tags/.NET3.5/default.aspx">.NET3.5</category><category domain="http://dotnet.lv/blogs/am/archive/tags/.NET3.5+SP+1/default.aspx">.NET3.5 SP 1</category><category domain="http://dotnet.lv/blogs/am/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://dotnet.lv/blogs/am/archive/tags/ASP.NET+AJAX/default.aspx">ASP.NET AJAX</category><category domain="http://dotnet.lv/blogs/am/archive/tags/ASP.NET+MVC/default.aspx">ASP.NET MVC</category></item><item><title>Izstrādātāja ikdiena (JavaScript String.trim)</title><link>http://dotnet.lv/blogs/am/archive/2008/11/22/izstr-d-t-ja-ikdiena-javascript-string-trim.aspx</link><pubDate>Sat, 22 Nov 2008 17:03:05 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:2150</guid><dc:creator>andrejs.mamontovs</dc:creator><slash:comments>149</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/am/rsscomments.aspx?PostID=2150</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/am/commentapi.aspx?PostID=2150</wfw:comment><comments>http://dotnet.lv/blogs/am/archive/2008/11/22/izstr-d-t-ja-ikdiena-javascript-string-trim.aspx#comments</comments><description>&lt;p&gt;&lt;font face="ver" size="2"&gt;Labvakar,&lt;/font&gt; &lt;p&gt;&lt;font face="ver" size="2"&gt;Nevaru samierināties, ka daudziem manas profesijas pārstāvjiem piemīt spēja sarežģīt lietas. Reāls piemērs no dzīves, kods atrast &lt;/font&gt; &lt;p&gt;&lt;font face="ver" size="2"&gt;atkļūdojot svešu kodu.&lt;/font&gt;&lt;pre class="code"&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;script &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;type&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;=&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre class="code"&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Trim&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;) 
{
    &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;while &lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;((&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;substring&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:cyan;"&gt;0&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;, &lt;/span&gt;&lt;span style="background:#10100d;color:cyan;"&gt;1&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;) &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;== &lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;#39; &amp;#39;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;) &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;|| &lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;substring&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:cyan;"&gt;0&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;, &lt;/span&gt;&lt;span style="background:#10100d;color:cyan;"&gt;1&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;) &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;== &lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;) &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;|| &lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;substring&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:cyan;"&gt;0&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;, &lt;/span&gt;&lt;span style="background:#10100d;color:cyan;"&gt;1&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;) &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;== &lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;#39;\r&amp;#39;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;)) 
    {
        &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;substring&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:cyan;"&gt;1&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;, &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;length&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;);
    }

    &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;while &lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;((&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;substring&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;length &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;- &lt;/span&gt;&lt;span style="background:#10100d;color:cyan;"&gt;1&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;, &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;length&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;) &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;== &lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;#39; &amp;#39;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;) &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;|| &lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;substring&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;length &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;- &lt;/span&gt;&lt;span style="background:#10100d;color:cyan;"&gt;1&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;, &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;length&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;) &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;== &lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;) &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;|| &lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;substring&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;length &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;- &lt;/span&gt;&lt;span style="background:#10100d;color:cyan;"&gt;1&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;, &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;length&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;) &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;== &lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;#39;\r&amp;#39;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;)) 
    {
        &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;substring&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:cyan;"&gt;0&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;, &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;length &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;- &lt;/span&gt;&lt;span style="background:#10100d;color:cyan;"&gt;1&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;);
    }
    &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;return &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font face="ver" size="2"&gt;;
}
&lt;/font&gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;script&lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;&lt;font face="ver" size="2"&gt;Uzmetot aci, pirmā doma, jāiet pakaļ aliņam!. Parādījās reāla sausuma sajūta mutē. Interesanti, cik uz šo koda rakstīšanu cilvēkam patērēts laika? Cik vel viņš to atkļūdoja? Lai paliek vēsturē!&lt;/font&gt;
&lt;p&gt;&lt;font face="ver" size="2"&gt;Sākam ar koda analīzi! Kāds ir koda galvenais uzdevums? Simbolu kopā, no kopas sākuma un beigām izgriezt visus tukšuma simbolus (atstarpe, kursora pārnesumus uz jaunu rindu). Viss darbojās. Pirmais likums, ja strādā – neaiztiec. Bet likumi ir rakstīti lai tos pārkāptu.&lt;/font&gt;
&lt;p&gt;&lt;font face="ver" size="2"&gt;Lai šo te darbību uzrakstītu optimālā palīgā nāk regulārās izteiksmes. Tās speciāli ir domātas šādai un līdzīgām operācijām ar simbolu kopām (string)&lt;/font&gt;
&lt;p&gt;&lt;font face="ver" size="2"&gt;Mazliet pārrakstot , funkcija izskatās jau šādi.&lt;/font&gt;&lt;pre class="code"&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;script &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;type&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;=&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&lt;font face="ver" size="2"&gt;&amp;gt;
&lt;/font&gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font color="#d6d694"&gt;&lt;/font&gt;
&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Trim&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;) {
    &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;return &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;replace&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;/^&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;\s&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;+|&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;\s&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;+&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;$&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;/&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;g&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;, &lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;);
}

&lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;script&lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;&lt;font face="ver" size="2"&gt;Nu jau ir patīkami skatīties&lt;/font&gt;
&lt;p&gt;&lt;font face="ver" size="2"&gt;Apliek tikai mazliet padomāt, lai šādu te kodu cilvēki nekopētu no vietas uz vietu (Copy/Paste) iztaisīt to kā tipa String sastāvdaļu.&lt;/font&gt;&lt;pre class="code"&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;script &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;type&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;=&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;

&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;String&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;prototype&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;trim &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;() { &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;return this&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;replace&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;/^&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;\s&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;+|&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;\s&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;+&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;$&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;/&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;g&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;, &lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;); }&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre class="code"&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;script&lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;&lt;font face="ver" size="2"&gt;Tagad varam rakstīt daudz smukākas konstrukcijas. Piemēram:&lt;/font&gt;&lt;pre class="code"&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;alert&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;  hello &amp;quot;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;trim&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;().&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;length&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;);&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;&lt;font face="ver" size="2"&gt;Ja savā darbā lieto &lt;/font&gt;&lt;a href="http://www.asp.net/ajax/"&gt;&lt;font face="ver" size="2"&gt;ASP.NET AJAX&lt;/font&gt;&lt;/a&gt;&lt;font face="ver" size="2"&gt;, vai arī &lt;/font&gt;&lt;a href="http://www.jquery.com/"&gt;&lt;font face="ver" size="2"&gt;jQuery&lt;/font&gt;&lt;/a&gt;&lt;font face="ver" size="2"&gt; tad rakstīt fukciju nav vajadzības:&lt;/font&gt;
&lt;p&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;Gadījumā ar ASP.NET galvenais nosacījums ir lai &lt;em&gt;.aspx&lt;/em&gt; failos tiktu definēts &lt;em&gt;ScriptManager&lt;/em&gt;&lt;/font&gt;&lt;/font&gt;&lt;pre class="code"&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;form &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;id&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;=&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;ApplicationForm&amp;quot; &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;runat&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;=&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;

&amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;asp&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;:&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;ScriptManager &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;runat&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;=&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;server&amp;quot; &lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;/&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre class="code"&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;form&lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;&lt;font face="ver" size="2"&gt;Un kodā rakstot atkal&lt;/font&gt;&lt;pre class="code"&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;alert&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;  hello &amp;quot;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;trim&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;().&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;length&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;);&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;&lt;font face="ver" size="2"&gt;visam būtu jādarbojas.&lt;/font&gt;
&lt;p&gt;&lt;font face="ver" size="2"&gt;Gadījumā ar &lt;em&gt;jQuery&lt;/em&gt; kods izskatās mazliet savādāk&lt;/font&gt;&lt;pre class="code"&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;alert&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;$&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;trim&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;  hello &amp;quot;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;).&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;length&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;);&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;&lt;font face="ver" size="2"&gt;Abas implementācijas ir ļoti līdzīgas, lai apskatīs kāds tad kods ir, uzrakstam šadas te rindiņas:&lt;/font&gt;&lt;pre class="code"&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;alert&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;  hello &amp;quot;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;trim&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;);&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;pre class="code"&gt;&lt;font size="2"&gt;&lt;font face="ver"&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;alert&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;$&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;trim&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;);&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;&lt;font face="ver" size="2"&gt;No savas puses atliek tikai piebilsts, pirms ko rakstīt, apskaties internetā, pastāv 99% varbūtība, ka kas līdzīgs ir rakstīts. Atliek tikai pielāgot savām vajadzībām!&lt;/font&gt;
&lt;p&gt;&lt;font face="ver" size="2"&gt;Cerams noderēs!&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=2150" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/am/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://dotnet.lv/blogs/am/archive/tags/Patterns/default.aspx">Patterns</category><category domain="http://dotnet.lv/blogs/am/archive/tags/Arhitekt_6B01_ra/default.aspx">Arhitektūra</category><category domain="http://dotnet.lv/blogs/am/archive/tags/jQuery/default.aspx">jQuery</category><category domain="http://dotnet.lv/blogs/am/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://dotnet.lv/blogs/am/archive/tags/ASP.NET+AJAX/default.aspx">ASP.NET AJAX</category></item></channel></rss>