jsFiddle. Тестирование JSONP

Я - консерватор. Это не самое лучшее качество для программиста из-за стремительного изменения технологий в IT. Чтобы угнаться за ними, надо как можно чаще использовать новинки. Я же, больше года тянул с тем, чтобы попробовать jQuery, долго изобретал собственный велосипед, убеждая себя и других, что knockoutjs не подойдет для нашего проекта. Теперь стараюсь наверстать упущенное и потому знакомлюсь, с TDD, XP, юнит-тестированием и прочими IT-новинками, открывая для себя технологии, которые для других программистов уже стали привычными инструментами.

Чтобы избавиться от большого количества тестовых страничек, разбросанных по моему HDD, я решил ближе познакомиться с jsFiddle. Непременно наделаю себе базовых проектов на все случаи жизни и буду активно ими пользоваться. Лучше всего изучать что-то на конкретном примере и мой выбор пал на JSONP, протокол, который, в скором времени, понадобится в одном из моих проектов, для кросс-доменной передачи запросов.

Вот результат моих экспериментов, во время которых я познакомился с тем, как jQuery взаимодействует с echo-сервисом jsFiddle и написал свой собственный echo-script на php

  1. var data = {
  2. json: ko.toJSON({
  3. id: 12345,
  4. name: 'Legion',
  5. isReal: true
  6. }),
  7. delay: 1
  8. },
  9. vm = {
  10. json: ko.observable('json'),
  11. onJSON: function() {
  12. $.ajax({
  13. type: 'post',
  14. url: '/echo/json/',
  15. dataType: 'json',
  16. data: data,
  17. success: function(js) {
  18. vm.json(ko.toJSON(js) + ' ' + (new Date()).getTime());
  19. }
  20. });
  21. },
  22. jsonp: ko.observable('jsonp'),
  23. onJSONP: function() {
  24. $.ajax(
  25. jsonpData);
  26. },
  27. nittis: ko.observable('nittis'),
  28. onNittis: function() {
  29. $.ajax(
  30. nittisData);
  31. }
  32. },
  33. jsonpData = {
  34. type: 'post',
  35. url: 'http://jsfiddle.net/echo/jsonp/',
  36. dataType: 'jsonp',
  37. data: data,
  38. success: function(js) {
  39. vm.jsonp(js.json + ' ' + js._);
  40. }
  41. },
  42. nittisData = {};
  43.  
  44. $.extend(nittisData, jsonpData);
  45. nittisData.success = function(js) {
  46. vm.nittis(js.json + ' ' + js._);
  47. };
  48. nittisData.url = 'http://it.nittis.ru/jsonp.echo.php';
  49.  
  50. ko.applyBindings(vm);
  1. extract($_GET);
  2. $arr['json'] = $json;
  3. $arr['_'] = $_;
  4. $out = json_encode($arr);
  5. $out = "$callback($out);";
  6. echo $out;

Программирование должно быть веселым занятием, чтобы приносить не только деньги, но и удовольствие. jsFiddle определенно делает работу веселее.

Читайте в блоге

Javascript XSS и Crazy Iframe Stuff

Метки: js jsfiddle jsonp

Комментарии:

Войдите на сайт, чтобы оставить комментарий