�Ɩ��p�A�v����iPhone�Ή��o������ɁAiPhone�œ��������߂́A�Ɩ��Ŏg����Web�A�v���P�[�V�������쐬����Ƃ��̃R�c���Љ�܂�
�@����́A���悢��Web�A�v��������Ă݂����Ǝv���܂��B�܂�Ajax�̊�{�������炢���A�㔼�ŁA�O��́uiUI�Ŏn�߂�iPhone�pWeb�A�v���J���̊�b�m���v�ŏЉ���uiUI�v�ɑg�ݍ��݂܂��B
�@iPhone�ł�Ajax�̎g������PC����Web�u���E�U�ƈꏏ�ŁAXMLHttpRequest�I�u�W�F�N�g���g����Web�T�[�o����XML��JSON�Ȃǂ̃R���e���c���擾���āA��������JavaScript��HTML�����H����Ƃ�������ł��B
�@�����N���N���b�N������A��ʂ̈ꕔ�i�ureplaceIt�v�Ƃ���ID��<div>�v�f�j�ɃT�[�o�Ő��������R���e���c����ŕ\������ɂ́A�ȉ��̂悤�ȃR�[�h�ł��B
1: <a href="javascript:void(0)" onclick="clickDiv()">�N���b�N���Ă�������</a> 2: <div id="replaceIt"></div> 3: <script> 4: function clickDiv() { 5: var xhr = new XMLHttpRequest(); 6: xhr.open("POST", "http://�yAjax�̃T�[�o��URL�z", true); 7: xhr.onreadystatechange = function() { 8: if (xhr.readyState == 4) { 9: document.getElementById('replaceIt').innerHTML = xhr.responseText; 10: xhr = null; 11: } 12: } 13: xhr.send(); 14: } 15: </script>
�@���̃R�[�h��������܂��B
�@��قǂ̗�ł́AAjax�̃T�[�o���̃T�|�[�g�����HTML�̒f�Ђ��Ԃ��Ă��邱�Ƃ����҂��āAinnerHTML���g����<div>�`</div>�̒��ɒ��ڃR���e���c�𗬂����݂܂����B
�@�������AXMLHttpRequest���g����Ajax�Ăяo���́A�ʂ�XML�łȂ��Ă��A�ǂ�ȃe�L�X�g�f�[�^����舵���܂��B�A�v���P�[�V�������쐬����ɂ́AinnerHTML���g�����@�̑��ɁAJSON�`���Ń��X�|���X��Ԃ��āAiPhone�̑��ł͒���JavaScript�̃I�u�W�F�N�g�Ƃ��ė��p������@���֗��ł��B
�@JSON�Ƃ́uJavaScript Object Notation�v�̗��ŁAJavaScript�̃\�[�X�R�[�h�����̂܂܃e�L�X�g������Ƃ��đ��M���A��M����eval()�����g���āA���̕������]�����邱�ƂŃI�u�W�F�N�g�Ƃ��ė��p�ł���悤�ɂ���d�g�݂ł��B
�@JavaScript�ŁAJSON�������]������ɂ́Aeval()���ڎg���Ă������̂ł����Aeval()���Z�L�����e�B�I�Ɉ��S�Ɏg���̂͂��Ȃ����̂ŁA�ujson2.js�v���g���̂������ł��傤�B
�@JSON�`���Ń��X�|���X�����ꍇ�́A�ȉ��̂悤�ȃR�[�h�ŋL�q���܂��B
1: <script type="text/javascript" src="js/json2.js"></script> 2: <a href="javascript:void(0)" onclick="clickDiv()">�N���b�N���Ă�������</a> 3: <div id="replaceIt"></div> 4: <script> 5: function clickDiv() { 6: var xhr = new XMLHttpRequest(); 7: xhr.open("POST", "http://�yAjax�̃T�[�o��URL�z", true); 8: xhr.onreadystatechange = function() { 9: if (xhr.readyState == 4) { 10: var obj = JSON.parse(xhr.responseText); 11: document.getElementById('replaceIt').innerHTML = obj.message; 12: xhr = null; 13: } 14: } 15: xhr.send(); 16: } 17: </script>
�@��قǂ́AinnerHTML�łƂ̈Ⴂ�́A10�s�ڂŃT�[�o����̃��X�|���X��JSON������Ƃ��ăp�[�X����JavaScript�I�u�W�F�N�g�ɂ��Ă���Ƃ���ł��B
�@���̗�ł́A�ȉ��̂悤�Ɂumessage�v�Ƃ������O�̃v���p�e�B�����I�u�W�F�N�g���T�[�o�����瑗�M����Ă��܂��B
{ "message": "���̃��b�Z�[�W���\������܂��B", "other1" : "���̑��̕�����P", "other2" : "���̑��̕�����Q" }
�@Ajax�̃T�[�o���ł́AiPhone�����XMLHttpRequest�ɂ��Ăяo���ɉ������āAHTML��JSON�̕����������悤�ȃA�v���P�[�V�������쐬���܂��B���̂Ƃ� XMLHttpRequest ���甭�s����郊�N�G�X�g�ł��A�gHTML�y�[�W�̂��߂�Cookie�h�Ɠ���Cookie�����M����Ă���̂ŁA��ʓI��Web�A�v���P�[�V�����Ɠ����Z�b�V�����Ǘ��̎d�g�݂𗘗p�ł��܂��B
�@�v���b�g�t�H�[���Ƃ��ẮACGI�ł��A�T�[�u���b�g�ł��AASP.NET�ł��g�����ꂽWeb�A�v���P�[�V�����v���b�g�t�H�[���𗘗p����Ƃ����ł��傤�B
�@�M�҂��Ɩ��ō���Ă���uShop����v�u�X��matic�v�ł�Java���g���Ă���̂ŁA�{�e�ł�Java���g�����ꍇ�ɂ��ĉ�����܂��B
�@Java���g����Ajax�̃T�[�o������������Ƃ�HTML�ł̏o�͂͂����Ɠ���������OK�ł��BJSON�ŏo�͂���ɂ́A������JSON������������ɁAJavaScript�Ŏg�������I�u�W�F�N�g��Java Beans�Ƃ��Ď������āA������uJSON-lib�v�Ƃ������C�u������JSON�ɕϊ�������@���ȒP�ł��B
�@��قǂ̗�ł��ƁA�܂�JavaScript�ɓn�������f�[�^���܂Ƃ߂��ȉ��̂悤�ȃN���X�����܂��B
public class SampleObject { private final String message; private final String other1; private final String other2; public SampleObject(String message, String other1, String other2) { this.message = message; this.other1 = other1; this.other2 = other2; } public String getMessage() { return message; } public String getOther1() { return other1; } public String getOther2() { return other2; } }
�@�����āA���̃N���X�̃C���X�^���X��JSON�ɕϊ����āA�T�[�u���b�g�̃��X�|���X�X�g���[���ɏ����o���܂��B
1: response.setContentType("application/json; charset=UTF-8"); 2: response.setHeader("Cache-Control", "private"); 3: SampleObject obj = new SampleObject("���̃��b�Z�[�W���\������܂��B", "���̂ق��̕�����1", "���̂ق��̕�����2"); 4: JSONObject json = JSONObject.fromObject(obj); 5: response.getOutputStream().write(json.toString().getBytes("UTF-8"));
�@���̃R�[�h��������܂��B
�@���̗�ł́A������݂̂��o�͂��Ă��܂����A���̂ق��ɂ����낢��ȃ^�C�v�̃I�u�W�F�N�g��JSON�ɕϊ����āAJavaScript�ŗ��p�ł��܂��B
�@��{�I�ɂ́A�ȏ�̓���̑g�ݍ��킹�ł��B
�@�����ɁA�uShop���v�̓����ŁA���ۂ�iPhone��Web�T�[�o�̊Ԃł��Ƃ肵�Ă���l�q���L���v�`�����Ă݂܂����B���̃��N�G�X�g�͕\������A�J�E���g�̃��X�g���擾���邽�߂̂��̂ł��B
�@��������Ajax���N�G�X�g��g�ݍ��킹��iPhone������Web�A�v���P�[�V�����͍���Ă��܂��B
GET https://some-domain.shoprun.jp/h2/STRMobileViewAPI.do?func=favStores HTTP/1.1 Cache-Control: max-age=0 Referer: https://some-domain.shoprun.jp/h2/STRMobileView.do?v=1.2.10&lang=ja User-Agent: Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117 Safari/6531.22.7
HTTP/1.1 200 OK Server: Apache Cache-Control: private Content-Encoding: gzip Content-Length: 203 Content-Type: application/json;charset=UTF-8 {"FavoriteStores":[{"accountId":"635ba844-845e-425c-a057-4e5085696ec9","disabled":false,"loginId":"ebisu","name":"�b����X","type":9},{"accountId":"f8fdb7a8-b22b-4505-9b6e-72fa21a87541","disabled":false,"loginId":"hiroo","name":"�L���X","type":9}]}
�@����܂ł̗�ł́AiUI�Ƃ͊W�Ȃ��P�Ȃ�Ajax�̎g�����ł������A���悢�����y�[�W�ł́AiUI��Ajax��g�ݍ��킹�����Ǝv���܂��B
Copyright © ITmedia, Inc. All Rights Reserved.