javascript 문의 드립니다.

sorate의 이미지

로컬에 간단한 HTTP 서버를 만들어 놓고 웹(javascript)과 통신하려고 합니다.
javascript 에서 아래와 같이 서버와 통신합니다.

HttpTest.html

<html>
<head>
<title>HTTP Test</title>
<script language="javascript">
 
	function CallServer(ID)
	{
		var Url = 'http://127.0.0.1:8442/?ID='+ID;
 
		var httpRequest=null;
 
		if(window.ActiveXObject) {  //IE
			httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
		}
		else if(window.XMLHttpRequest) { // Mozilla, Safari, ...
			httpRequest = new XMLHttpRequest();
		}
 
		httpRequest.open('GET', Url, true);
		httpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		httpRequest.onreadystatechange = function (aEvt) {
			if (httpRequest.readyState == 4) {
				if(httpRequest.status == 200) {
					alert(httpRequest.responseText); //서버에서 전송된 데이터 출력
				}
				else 
				{
					alert("서버 프로그램을 실행해 주십시요.");
			        }
			}
		};
		httpRequest.send(null);
	}
 
</script>
 
</head>
<body>
<a href="#" onclick="javascript:CallServer("aaa")">웹서버 호출</a>
</body>
</html>

아래와 같은 순서로 테스트 했는데 IE(11) 에서 문제가 발생합니다.

1. 웹서버 프로그램 실행
2. HttpTest.html 실행(크롬,IE11)
3. '웹서버 호출' 클릭
4. 서버에서 전송된 데이터 출력
5. 웹서버 프로그램 종료
6. '웹서버 호출' 클릭
크롬 => '서버 프로그램을 실행해 주십시요.' 메세지 출력..정상
IE => alert(httpRequest.responseText); 서버에서 전송된 데이터 출력..비정상

크롬에서는 문제없는데 이상하게 IE(11) 에서는 서버 프로그램을 종료해도 여전히 데이터가 출력됩니다.
IE 에서는 함수가 종료 되어도 변수값이 유지되는 걸까요?
도움 말씀 좀 부탁드립니다.

peecky의 이미지

항상 같은 URL로 요청을 보내는 것이라면, 웹 브라우저 캐시일 가능성이 있습니다.

var Url = 'http://127.0.0.1:8442/?ID='+ID + '&_noCache=' + Math.random();

이런식으로 매번 바뀌는 더미 파라메터를 추가해서 캐시를 못 쓰도록 해보세요.

sorate의 이미지

말씀하신 캐시 문제가 맞네요.
정말 감사합니다.^^

shint의 이미지

<a href="#" onclick="javascript:CallServer("aaa")">웹서버 호출</a> 를
<a href="#" onclick="javascript:CallServer('aaa')">웹서버 호출</a> 로 바꿔주세요.

다음에 접속해보니. 메시지가 오네요.

댓글 첨부 파일: 
첨부파일 크기
Package icon index.zip711바이트

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

sorate의 이미지

캐시 문제 였네요.
답변 감사드립니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.