vrijdag 28 november 2014
HTML5, Javascript en CSS
Handige URL's:
www.typescriptlang.org -> type uitbreiding op javascript
www.w3schools.com
www.devdocs.io
www.caniuse.com
www.microsoft.com/learning/companionmoc -> 20480
cordova.apache.org -> Apache Cordova is a platform for building native mobile applications using HTML, CSS and JavaScript
Javascript:
Websockets, sockets die altijd open staan en daardoor server naar client communicatie mogelijk maken.
SignalR, een .NET websockets library.
arguments: als je een functie wilt aanmaken met een variabel aantal argumenten, dan kun je 0 argumenten invullen
en met arguments.length bepalen hoeveel en met arguments[0] bijvoorbeeld de eerste parameter ophalen.
localStorage -> een object waarin je key-value pairs kunt zetten. Deze informatie blijft behouden.
sessionStorage -> alleen beschikbaar binnen de sessie.
if (!localStorage.hup) { localStorage.hup = 'bericht'; }
Dragdrop:
this.canvas.addEventListener("dragover", this.handleDragOver.bind(this));
this.canvas.addEventListener("drop", this.handleDrop.bind(this));
function handleDragOver(event) {
event.stopPropagation();
event.preventDefault();
event.dataTransfer.dropEffect = 'copy'; // Makes the browser display a "copy" cursor.
}
function handleDrop(event) {
event.stopPropagation();
event.preventDefault();
var blob = event.dataTransfer.files[0];
var reader = new FileReader();
reader.onload = function(data) { alert(data.target.result); }
reader.readAsText(blob);
//reader.readAsDataURL(blob);
}
Geolocation:
navigator.geolocation.getCurrentPosition(success-function(position), error-function);
position.coords.latitude
position.coords.longitude
Javascript Writeonly properties, Setters en Getters:
Object.defineProperty(obj1, "prop1", { value: "hallo", writable: false });
obj1.prop1 = "wereld";
alert(obj1.prop1); -> "hallo"
Object.defineProperty(obj, "newAccessorProperty", {
set: function (x) {
},
get: function () {
return ...;
},
enumerable: true,
configurable: true
});
Inheritance:
var Person = function(name, age) { this.name = name; this.age = age; };
Person.prototype = { haveBirthday: function() { this.age++; } };
var Student = function(name, age, subject) {
Person.bind(this)(name, age);
//Person.call(this, name, age);
//Person.apply(this, [name, age]);
this.subject = subject;
};
Student.prototype = new Person();
Student.prototype.constructor = Student;
var st = new Student("Jim", 20, "Physics");
st.haveBirthday();
var st2 = Object.create(st);
st2.age = 18;
st2.subject = "BioChemistry";
alert(st.name + " " + st.age + " " + st.subject);
alert(st2.name + " " + st2.age + " " + st2.subject);
Object.create() kun je een copie maken van het object.
bind() kan meer elementen binden dan alleen de this. Die argumenten staan dan ook vast.
Person.bind(this, 'naam', 10);
"use strict"
var retval = URL.createObjectURL(object, oOptions);
The Blob that is created can be used for resources in elements such as Image, video, audio, XMLHttpRequest, css
backgroundImage, and css fonts.
online/offline
document.body.onoffline = online-function();
document.body.ononline = offline-function();
jQuery Deferred:
var deferred1 = function (data) { return [2,1]; };
var deferred2 = function (data) { return [3,0]; };
var deferred = $.Deferred();
deferred.then(deferred1).then(deferred2).done(function (data) { alert(data); });; deferred.resolveWith(deferred, [[0,18]]);
jQuery Ajax:
if ($.postJSON === undefined) {
$.postJSON = function (url, data) {
return $.ajax({ type: "POST", url: url, data: data, dataType: "json" }); }
}
$.postJSON(url, data).done( function (data, textStatus) { alert("success"); }).fail( function () { alert("Could not upload post!"); }); }
HTML:
input attribuut autofocus -> zet de focus op dit veld.
input attribuut autocomplete -> keuzelijst van eerder ingevulde waarden
input attribuut placeholder -> tekst die grijs vooringevuld erin staat.
input attribuut pattern -> regular expression waaraan de tekst moet voldoen achteraf.
input attribuut title -> de hint die wordt gegeven als de regular expression niet goed wordt ingevoerd.
<input type="text" name="country_code" pattern="[A-Za-z]{3}" title="Three letter country code">
input attribuut border-radius -> ronde hoeken.
CSS:
@media (max-width: 5in) {
/* Voer hier je css in die uitgevoerd wordt bij displays kleiner dan 5inch */
}
@media print {
/* voor hier je css in voor print */
}
Genaamd media query.
Op de volgende manier laad je alleen de css in als de grootte van het scherm kleiner dan 5 inch is:
<head><link media="max-width: 5in" rel="stylesheet" type="text/css" href="theme.css"></head>
Nieuwe flow genaamd:
display: flex
flex-grow: 1
C#;
Observerable collection -> kun je een funcie automatisch aanroepen als een element wordt toegevoegd.
class QuestionList : ObservableCollection<Question> { }
Questions.CollectionChanged += (sender, args) =>
{
switch (args.Action)
{
case NotifyCollectionChangedAction.Add:
SendQuestions(args.NewItems.Cast<Question>());
break;
case NotifyCollectionChangedAction.Remove:
{
var ids = args.OldItems.Cast<Question>().Select(q => q.id).ToList();
ids.ForEach(SendRemove);
}
break;
}
};
Abonneren op:
Reacties posten (Atom)
Geen opmerkingen:
Een reactie posten