Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

vor 14 Jahren
vor 14 Jahren
vor 14 Jahren
vor 14 Jahren
vor 14 Jahren
vor 14 Jahren
vor 14 Jahren
vor 14 Jahren
vor 14 Jahren
vor 14 Jahren
vor 14 Jahren
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. // library to mange assets (js, css, models, html) etc in the app.
  2. // will try and get from localStorge if latest are available
  3. // or will load them via xmlhttp
  4. // depends on wn.versions to manage versioning
  5. wn.assets = {
  6. // keep track of executed assets
  7. executed_ : {},
  8. // check if the asset exists in
  9. // localstorage
  10. exists: function(src) {
  11. if('localStorage' in window
  12. && localStorage.getItem(src))
  13. return true
  14. },
  15. // add the asset to
  16. // localstorage
  17. add: function(src, txt) {
  18. if('localStorage' in window) {
  19. localStorage.setItem(src, txt);
  20. }
  21. },
  22. get: function(src) {
  23. return localStorage.getItem(src);
  24. },
  25. extn: function(src) {
  26. if(src.indexOf('?')!=-1) {
  27. src = src.split('?').slice(-1)[0];
  28. }
  29. return src.split('.').slice(-1)[0];
  30. },
  31. html_src: function(src) {
  32. if(src.indexOf('/')!=-1) {
  33. var t = src.split('/').slice(0,-1);
  34. t.push('src');
  35. t = t.join('/') +'/' + a.split('/').slice(-1)[0];
  36. } else {
  37. var t = 'src/' + src;
  38. }
  39. return t;
  40. },
  41. // load an asset via
  42. // xmlhttp
  43. load: function(src) {
  44. // this is virtual page load, only get the the source
  45. // *without* the template
  46. var t = wn.assets.extn(src)=='html' ? wn.assets.html_src(src) : src;
  47. wn.xmlhttp.get(t, function(txt) {
  48. // add it to localstorage
  49. wn.assets.add(src, txt);
  50. }, 'q=' & Math.floor(Math.random()*1000) , false)
  51. },
  52. // pass on to the handler to set
  53. execute: function(src) {
  54. if(!wn.assets.exists(src)) {
  55. wn.assets.load(src);
  56. }
  57. var type = wn.assets.extn(src);
  58. if(wn.assets.handler[type]) {
  59. wn.assets.handler[type](wn.assets.get(src), src);
  60. wn.assets.executed_[src] = 1;
  61. }
  62. },
  63. // handle types of assets
  64. // and launch them in the
  65. // app
  66. handler: {
  67. js: function(txt, src) {
  68. wn.dom.eval(txt);
  69. },
  70. css: function(txt, src) {
  71. var se = document.createElement('style');
  72. se.type = "text/css";
  73. if (se.styleSheet) {
  74. se.styleSheet.cssText = txt;
  75. } else {
  76. se.appendChild(document.createTextNode(txt));
  77. }
  78. document.getElementsByTagName('head')[0].appendChild(se);
  79. },
  80. html: function(txt, src) {
  81. // make the html content page
  82. var page = wn.dom.add($('.outer .inner').get(0), 'div', 'content', null, txt);
  83. page.setAttribute("_src", src);
  84. },
  85. cgi: function(txt, src) {
  86. // dynamic content, will return content as
  87. // javascript
  88. wn.dom.eval(txt)
  89. }
  90. }
  91. }