<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://skysigal.com/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://skysigal.com/feed.php">
        <title>Notes it:ad:jscript</title>
        <description></description>
        <link>https://skysigal.com/</link>
        <image rdf:resource="https://skysigal.com/lib/tpl/bootstrap3/images/favicon.ico" />
       <dc:date>2026-05-07T12:50:26+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/jscript/ajax?rev=1699068359&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/jscript/controls?rev=1699068359&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/jscript/cookies?rev=1699068360&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/jscript/core?rev=1699068360&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/jscript/dates?rev=1699068361&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/jscript/debugging?rev=1699068362&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/jscript/glossary?rev=1699068362&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/jscript/home?rev=1719364112&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/jscript/ide?rev=1699068364&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/jscript/include?rev=1699068364&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/jscript/jquery_libs_serializeform?rev=1699068365&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/jscript/json?rev=1699068365&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/jscript/namespaces?rev=1699068366&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/jscript/navigation?rev=1699136884&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/jscript/neat_examples?rev=1699136884&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/jscript/objects?rev=1699136885&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/jscript/oop?rev=1699068367&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/jscript/private_fields?rev=1699136886&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/jscript/security?rev=1699068368&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/jscript/speed?rev=1699136887&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/jscript/strings?rev=1699136887&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/jscript/xact?rev=1699068368&amp;do=diff"/>
                <rdf:li rdf:resource="https://skysigal.com/it/ad/jscript/xml?rev=1699136888&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://skysigal.com/lib/tpl/bootstrap3/images/favicon.ico">
        <title>Notes</title>
        <link>https://skysigal.com/</link>
        <url>https://skysigal.com/lib/tpl/bootstrap3/images/favicon.ico</url>
    </image>
    <item rdf:about="https://skysigal.com/it/ad/jscript/ajax?rev=1699068359&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T03:25:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IT:AD:JScript:AJAX</title>
        <link>https://skysigal.com/it/ad/jscript/ajax?rev=1699068359&amp;do=diff</link>
        <description>IT:AD:JScript:AJAX

	* (UP)
jscript index



CheckList

Recap

	* Ajax stands for Async Javascript Xml.
		* the name says it all: $.ajax will always be using async calls
	*  hence always needs a success callback defined 

*  Under the hood it is using XMLHttpRequest</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/jscript/controls?rev=1699068359&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T03:25:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IT:AD:JScript:Controls</title>
        <link>https://skysigal.com/it/ad/jscript/controls?rev=1699068359&amp;do=diff</link>
        <description>IT:AD:JScript:Controls

	* (UP)
jscript index



----------

## JQuery.UI ##

Most times, JQuery.UI will do the trick -- even if Matt hates it (rightly so) for being bloated with controls rarely used (slider!?!)

Controls

But not everything is centered around JQuery.UI. Here are some controls worth knowing about:</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/jscript/cookies?rev=1699068360&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T03:26:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IT:AD:JQuery:Cookies</title>
        <link>https://skysigal.com/it/ad/jscript/cookies?rev=1699068360&amp;do=diff</link>
        <description>IT:AD:JQuery:Cookies

	* (UP)
jscript index



----------

Examples

Plain old JS:
function setCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = &quot;; expires=&quot;+date.toGMTString();
  }
  else var expires = &quot;&quot;;
  document.cookie = name+&quot;=&quot;+value+expires+&quot;; path=/&quot;;
}

function getCookie(name) {
  var nameEQ = name + &quot;=&quot;;
  var ca = document.cookie.split(&#039;;&#039;);
  for(var i=0;i &lt; ca.length;i++) {
    var c = ca[i]…</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/jscript/core?rev=1699068360&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T03:26:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IT:AD:JScript:Core</title>
        <link>https://skysigal.com/it/ad/jscript/core?rev=1699068360&amp;do=diff</link>
        <description>IT:AD:JScript:Core

	* (UP)
jscript index


	* IT:JScript 
 IT:JScript:OOP *

Syntax

Yeah -- the syntax is similar to C, C++, C#, Java. That part is fairly easy to understand.
Where it is not similar, is the way the syntax is processed. It&#039;s actually a lot closer to...</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/jscript/dates?rev=1699068361&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T03:26:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IT:AD:JScript:Dates</title>
        <link>https://skysigal.com/it/ad/jscript/dates?rev=1699068361&amp;do=diff</link>
        <description>IT:AD:JScript:Dates

	* (UP)
jscript index



Acceptable absolute formats are:
Dates:
yyyy-mm-dd
yy-mm-dd
mm/dd/yyyy

Time
hh:mm
hh:mm:ss
hh:mm:ss.xxx (xxx are milliseconds)
You can also append am/pm to the time. Values less than 10 does not have to be prefixed with 0 but they can.</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/jscript/debugging?rev=1699068362&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T03:26:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IT:AD:JScript:Debugging</title>
        <link>https://skysigal.com/it/ad/jscript/debugging?rev=1699068362&amp;do=diff</link>
        <description>IT:AD:JScript:Debugging

	* (UP)
jscript index



Tools

* Chrome:

	*  Great summary

* FireBug:

	*  Read this tutorial

* F12:

	*  http://msdn.microsoft.com/en-us/library/gg589507(v=vs.85).aspx.aspx)

console

	* Use console.log(msg), console.debug, console.info, console.warn, console.error, console.clear to send message to the debugger window.</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/jscript/glossary?rev=1699068362&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T03:26:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IT:AD:JScript/Glossary</title>
        <link>https://skysigal.com/it/ad/jscript/glossary?rev=1699068362&amp;do=diff</link>
        <description>IT:AD:JScript/Glossary

	* (UP)
jscript index



Glossary

Class

There is no class keyword in Javascript -- you just use a function to create a named object, and add methods to the object&#039;s prototype:



	* More: &lt;http://www.phpied.com/3-ways-to-define-a-javascript-class/&gt;

Map

A term used for a field-only object, with no methods/behaviour. Usually created on the fly as a argument message/package, to pass around:</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/jscript/home?rev=1719364112&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-06-26T01:08:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IT:AD:JScript</title>
        <link>https://skysigal.com/it/ad/jscript/home?rev=1719364112&amp;do=diff</link>
        <description>IT:AD:JScript

	* (UP)
jscript index


	* &lt;https://techblog.geekyants.com/recreating-real-world-terrain-with-react-threejs-and-webgl-shaders-1&gt;
	* IT:AD:JScript:HowTo
	* IT:AD:JScript/IDE
	* 
	* 
	* Resources
	* IT:AD:JScript/Glossary
	* IT:AD:JScript:Debugging
	* IT:AD:JScript:HowTo:Include Files from within an ASP.MVC application
	* IT:AD:JScript:Include
	* IT:AD:JScript:Core
	* IT:AD:JScript:Concepts
	* IT:AD:JScript:OOP
	* 
	* IT:AD:JScript:Debugging
	* IT:AD:JScript:Libs
	* 
	* IT:AD:JScrip…</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/jscript/ide?rev=1699068364&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T03:26:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IT:AD:JScript/IDE</title>
        <link>https://skysigal.com/it/ad/jscript/ide?rev=1699068364&amp;do=diff</link>
        <description>IT:AD:JScript/IDE

	* (UP)
jscript index



Finding a good IDE for web development is not as easy as it looks.

Notes

	* WebStorm:
		* &lt;https://www.jetbrains.com/webstorm/&gt;
		* Advantages:
			* Gets a lot of credit.

		* Considerations:
			* Java based, feels a bit memory heavy

		* Disadvantages:

	* LightTable:</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/jscript/include?rev=1699068364&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T03:26:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IT:AD:JScript:Include</title>
        <link>https://skysigal.com/it/ad/jscript/include?rev=1699068364&amp;do=diff</link>
        <description>IT:AD:JScript:Include

	* (UP)
jscript index



Including Scripts on the page is the bare essential step to using JScript -- yet with ASP.NET, etc. time is lost...

Include Statements

	* Script Include statements must not be autoclosed, or things go weird in some browers.</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/jscript/jquery_libs_serializeform?rev=1699068365&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T03:26:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IT:AD:JQuery:Libs:SerializeForm</title>
        <link>https://skysigal.com/it/ad/jscript/jquery_libs_serializeform?rev=1699068365&amp;do=diff</link>
        <description>IT:AD:JQuery:Libs:SerializeForm

	* (UP)
jscript index



	* http://zensoftware.org/archives/445
	* Note: that it has to be used on containing div, not the form itself...

Notes

	* Pros:
		* unlike JQuery&#039;s Serialize (which produces a string output), serializes things as a Map.
	*  ie: This is beneficial for JSON requests.</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/jscript/json?rev=1699068365&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T03:26:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IT:AD:JScript:JSON</title>
        <link>https://skysigal.com/it/ad/jscript/json?rev=1699068365&amp;do=diff</link>
        <description>IT:AD:JScript:JSON

	* (UP)
jscript index



Tools

	* JSLINT
	* Format JSON:
		* http://jsonformatter.curiousconcept.com/


Using Js.Ext

	* Request

Using JSON

	* JQuery does not have a JSON Serializer.
		* The argument being that it doesn&#039;t need one internally, and can handle it as:


Example:
 $.post(&quot;test.php&quot;, { name: &quot;John&quot;, time: &quot;2pm&quot; } );  
 $.post(&quot;test.php&quot;, { &#039;choices[]&#039;: [&quot;Jon&quot;, &quot;Susan&quot;] });
 $.getJSON(&quot;test.js&quot;, { name: &quot;John&quot;, time: &quot;2pm&quot; }, function(json) {
   alert(&quot;JSON Data:…</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/jscript/namespaces?rev=1699068366&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T03:26:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IT:AD:JScript:Namespaces</title>
        <link>https://skysigal.com/it/ad/jscript/namespaces?rev=1699068366&amp;do=diff</link>
        <description>IT:AD:JScript:Namespaces

	* (UP)
jscript index


//Verifying if the variable &quot;com&quot; exists in order to use it,
//if it doesn&#039;t exists we create an empty object
var com = com || {};
//and add it to the object &quot;quizzpot&quot;
com.quizzpot = com.quizzpot || {};
com.quizzpot.tutorial = com.quizzpot.tutorial || {};

//Creating the constructor of the object
com.quizzpot.tutorial.User = function(options){
    this.nickname = options.nickname;
}

//Creating an instance
var p = new com.quizzpot.tutorial.Perso…</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/jscript/navigation?rev=1699136884&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T22:28:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>it:ad:jscript:navigation</title>
        <link>https://skysigal.com/it/ad/jscript/navigation?rev=1699136884&amp;do=diff</link>
        <description>http://benalman.com/projects/jquery-hashchange-plugin/</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/jscript/neat_examples?rev=1699136884&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T22:28:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>it:ad:jscript:neat_examples</title>
        <link>https://skysigal.com/it/ad/jscript/neat_examples?rev=1699136884&amp;do=diff</link>
        <description>* &lt;http://jsfiddle.net/ondras/hYfN3/&gt;
		* &lt;http://thomasstreet.net/blog/spreadsheet.html&gt;

	* &lt;http://jsfiddle.net/vz5aZ/2/&gt;
	* &lt;http://www.codeproject.com/Articles/683506/Parser-in-JavaScript&gt;</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/jscript/objects?rev=1699136885&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T22:28:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>it:ad:jscript:objects</title>
        <link>https://skysigal.com/it/ad/jscript/objects?rev=1699136885&amp;do=diff</link>
        <description>/**
 * Copies all the properties of config to obj if they don&#039;t already exist.
 * @param {Object} obj The receiver of the properties
 * @param {Object} config The source of the properties
 * @return {Object} returns obj
 */
applyIf : function(object, config) {
    var property, undefined;
    
    if (object) {
        for (property in config) {
            if (object[property] === undefined) {
                object[property] = config[property];
            }
        }
    }
    
    return obj…</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/jscript/oop?rev=1699068367&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T03:26:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IT:AD:JScript:OOP</title>
        <link>https://skysigal.com/it/ad/jscript/oop?rev=1699068367&amp;do=diff</link>
        <description>IT:AD:JScript:OOP

	* (UP)
jscript index



----------

About

Javascript is a bizarre little fighter language that somehow survived ... in the same way that DuctTape survives. Not really perfect, but can used for many things...

Classes

OOP is basically a class definition with member methods and properties.</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/jscript/private_fields?rev=1699136886&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T22:28:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IT:AD:JScript:Private Fields</title>
        <link>https://skysigal.com/it/ad/jscript/private_fields?rev=1699136886&amp;do=diff</link>
        <description>IT:AD:JScript:Private Fields

	* (UP)
jscript index



Prototype And Objects

Prototypes are not superclasses. They are separate objects. 

Won&#039;t work:
function Shape() {
  var area = 50;
  this.setArea = function(a) {area = a;};
  this.getArea = function() {return area;};
}

function Square(){}
Square.prototype = Shape;

var shape1 = new Square();
var shape2 = new Square();
shape1.setArea(100);
//Unfortunately, shape2.getArea==100, when it should be 50...</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/jscript/security?rev=1699068368&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T03:26:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IT:AD:JScript:Security</title>
        <link>https://skysigal.com/it/ad/jscript/security?rev=1699068368&amp;do=diff</link>
        <description>IT:AD:JScript:Security

	* (UP)
jscript index



## SSL/TSL ##

Check for SSL:
isSecure : /^https/i.test(window.location.protocol)
Warnings

	* http://www.matasano.com/articles/javascript-cryptography/

Hashing and Encryption

	* http://www.movable-type.co.uk/scripts/sha1.html</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/jscript/speed?rev=1699136887&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T22:28:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Resources</title>
        <link>https://skysigal.com/it/ad/jscript/speed?rev=1699136887&amp;do=diff</link>
        <description>Resources

	* &lt;http://sealedabstract.com/rants/why-mobile-web-apps-are-slow/&gt;</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/jscript/strings?rev=1699136887&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T22:28:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IT:AD:JScript:Strings</title>
        <link>https://skysigal.com/it/ad/jscript/strings?rev=1699136887&amp;do=diff</link>
        <description>IT:AD:JScript:Strings

	* (UP)
jscript index



----------

String.Format Equivalent:
String.prototype.format = function () {
  var args = arguments;
  return this.replace(/{(\d+)}/g, function (match, number) {
    return typeof args[number] != &#039;undefined&#039;
    ? args[number]
    : match;
  });
};

//usage:
return &quot;A {0}{1} example.format(&quot;very&quot;,&quot;quick&quot;);</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/jscript/xact?rev=1699068368&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T03:26:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IT:AD:JScript:XAct</title>
        <link>https://skysigal.com/it/ad/jscript/xact?rev=1699068368&amp;do=diff</link>
        <description>IT:AD:JScript:XAct

	* (UP)
jscript index



I use the folloing in most apps these days...

Example
XAct = {
  ns: function() {
    var ln = arguments.length,
        i, value, split, x, xln, parts, object;
    for (i = 0; i &lt; ln; i++) {
        value = arguments[i];
        parts = value.split(&quot;.&quot;);
        object = (window.XAct)
            ? window[parts[0]] = Object(window[parts[0]])
            : arguments.callee.caller.arguments[0];
        for (x = 1, xln = parts.length; x &lt; xln; x++)
   …</description>
    </item>
    <item rdf:about="https://skysigal.com/it/ad/jscript/xml?rev=1699136888&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-04T22:28:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>it:ad:jscript:xml</title>
        <link>https://skysigal.com/it/ad/jscript/xml?rev=1699136888&amp;do=diff</link>
        <description>&lt;http://stackoverflow.com/questions/5722410/how-can-i-use-javascript-to-transform-xml-xslt&gt;

&lt;http://johannburkard.de/software/xsltjs/&gt;</description>
    </item>
</rdf:RDF>
