웹을 가끔 하다보면, 새로고침해도 제대로 반영되지 않는 경우 "Ctrl + F5"로 갱신하거나,

아래 코딩맛집님의 글을 보시고 해당 페이지에 코딩해주시면 됩니다.

가끔 웹 유지관리하다가 필요하여 글을 복사하여 둡니다.

 

PHP

<?php
//error_reporting(E_ALL ^ E_NOTICE);
// W3C P3P 규약설정
@header ("P3P : CP=\"ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC OTC\"");
//@header("Expires: 0");
@header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
@header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
@header("Cache-Control: no-store, no-cache, must-revalidate");
@header("Cache-Control: post-check=0, pre-check=0", false);
@header("Pragma: no-cache");

//Session 설정
//@session_cache_limiter('no-cache, must-revalidate');
//@session_start();
?>

 

출처: https://coding-restaurant.tistory.com/339 [코딩맛집]=====================================

로그아웃 후 뒤로가기 클릭 시 그대로 남아있는 캐시를 초기화하는 등에 쓸 수 있겠습니다.

 

html로 브라우저 캐시를 초기화하기 : 캐시를 사용하지 않도록 하는 메타태그 no-cahe

pragma : no-cache는 캐싱을 방지하는 메타태그입니다.Expires: -1는 캐시된 페이지를 즉시 만료합니다.

<meta http-equiv="Expires" content="Mon, 06 Jan 1990 00:00:01 GMT">
# 위의 명시된 날짜 이후가 되면 페이지가 캐싱되지 않습니다.
(따라서 위와 같은 날짜로 지정할 경우 페이지는 지속적으로 캐싱되지 않습니다.)
<meta http-equiv="Expires" content="-1">
# 캐시된 페이지가 만료되어 삭제되는 시간을 정의합니다. 특별한 경우가 아니면 -1로 설정합니다.
<meta http-equiv="Pragma" content="no-cache">
# 페이지 로드시마다 페이지를 캐싱하지 않습니다. (HTTP 1.0)
<meta http-equiv="Cache-Control" content="no-cache">
# 페이지 로드시마다 페이지를 캐싱하지 않습니다. (HTTP 1.1)


출처: https://coding-restaurant.tistory.com/339 [코딩맛집]

 

상기 Libary를 이용하면 Json을 이용한 컨트롤이 Javascript에서 손쉽게 이루어 질 수 있을 것으로 판단한다.

  1. XML 파일 또는 포멧의 자료를 “XML to JSON – a converter”를 이용하여 JSON으로 변경
  2. “Sesseion variables without cookies”를 이용하여 해당 페이지에 저장(새로고침을 하여도 해당 창이 닫히기 전까지는 유지되는 기능 활용)
  3. “JSON Query Engine”을 이용하여 CRUD(Create, Read, Update, Delete) 작업 수행 및 반영

본 소스가 왜 필요하고 어떻게 구현되는지는 소스 보면 쉽게 이해가 가실것으로 판단하여 설명은 달지 않겠습니다.

호출 페이지(HTML)

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script type="text/javascript" src="jquery-1.7.1.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function ()
            {
                loadData();
            });
            function loadData()
            {
                try
                {
                    $.ajax({
                        url: "http://[테스트 도메인]/json_test.php"
                        , crossdomain: true
                        , dataType: "jsonp"
                        , jsonp: "callback"
                        , jsonpCallback: "jsonpCallback"
                        , type: 'GET'
                        , data: post
                        , contentType: "application/json; charset=utf-8"
                        , error: function (jqXHR, textStatus, errorThrown)
                        {
                            alert("Error : " + textStatus + " / " + errorThrown);
                        }
                        , success: function (msg, textStatus, jqXHR)
                        {
                            // Callback함수 이용 추천
                            $("#txtResult").text(JSON.stringify(msg));
                        }
                    });
                } catch (e) {
                    alert("Error!!");
                }
            }
            function jsonpCallback(msg)
            {
                //var data = eval(msg);
                alert(msg["callback"] + " / " + JSON.stringify(msg));
            }
        </script>
    </head>
    <body>
        <div id="txtResult" name="txtResult">
        Result Text String
        </div>
    </body>
</html>


피호출 페이지(PHP / json_test.php)

<?php
header("content-type: application/json");  
$callback = $_GET["callback"];

$json_data = array();
$json_data["get"] = $_GET;
$json_data["data"]["a"] = "A";
$json_data["data"]["b"] = "B";
$json_data["data"]["c"] = "C";
$json_data["data"]["d"] = "D";
$json_data["data"]["e"] = "E";

echo $callback . "(". json_encode($json_data) . ")";
?>

결과

{"get":{"callback":"jsonpCallback","_":"1385021410367"},"data":{"a":"A","b":"B","c":"C","d":"D","e":"E"}}

 


주의사항

JSON.stringify 함수는 IE8 부터 지원되며, 브라우져 버전이 IE8이더라도 문서 모드가 “Internet Explorer 8 표준”이상에서만 정상 작동하며, “Internet Explorer 8 호환모드”또는 Internet Explorer 7” 이하에서는 작동되지 않습니다.
크롬 등에서는 정상 작동합니다. 문제는 “Internet Explorer” ^^;;
 

참고 : http://www.fbloggs.com/2010/07/09/how-to-access-cross-domain-data-with-ajax-using-jsonp-jquery-and-php/

JQuery Ajax API Document : http://api.jquery.com/jQuery.Ajax/

 

jQuery EasyUI 사이트 : http://www.jeasyui.com/

 

Grid 때문에 고민하여 Devexpress Grid를 쓰기 위하여 ASP.NET을 활용 검토하였으나, 본 jQuery EasyUI를 보고서 ASP.NET을 활용 안해되 되겠다는 생각이 듭니다.

jQueryUI와 섞어서 쓰면 거의 최강이지 않을까 생각이 듭니다.

 

단, 아쉬운 점(?) 웹에서 Spread Sheet(Excel) 구현은 힘들겠지만…. 이것도 해결 되었으면 ㅎㅎ 욕심이겠죠….^^;;

 

라이블러리 기본은 jQuery와 데이터 연동부분은 JSON을 이용함으로써 훨씬 쉽고 PHP, JSP, ASP, ASP.NET 등 서버사이드 언어와 상관없이 쓸 수 있는 Javascript로만 만들어져서 더 멋진 것 같습니다.

 

라이센스는 jQuery 라이센스 정책을 그대로 승계 받아 GPL(GNU General Public License) 라이센스를 따릅니다.

엄청 강력한 라이센스죠 ^^;; 해당 라이블러리를 사용하였으면 GPL로 배포 하라고 하니…

(여기서 궁금한 점은 대부분 요즘 jQuery를 이용하는데… 그럼 모두 공개???)

GPL 라이센스에 대해 요약해보면,
- 자유 소프트웨어라고 할 때 자유(Free)의 의미는 무료 사용이 아닌 자유로운 사용이다.
- GPL로 프로그램을 배포할 경우 유료/무료 판매에 관계없이 자신이 해당 프로그램에 대해 가질 수 있었던 모든 권리를, 프로그램을 받게 될 사람에게 그대로 양도해야 한다.
- 무보증 : 자유 소프트웨어는 반복적인 재 배포 과정을 통해 소프트웨어 자체에 대해 수정과 변형이 일어날 수도 있으며, 이는 최초의 저작자가 만든 소프트웨어의 문제가 아닐 수도 있다.
- GPL을 따르는 소프트웨어 소스 코드의 일부를 사용해 만든 소프트웨어는 GPL을 따라야 한다.
- GPL을 따르는 소프트웨어 소스 코드를 개인적으로 사용할 수 없다. 반드시 소프트웨어를 개발한 원작자나 공동체에 환원 해야 한다.
소스코드 배포 시
- 저작권 표시
- No Warranty
- GPL로 배포
실행파일 배포 시
- 저작권 표시
- No Warranty
- GPL로 배포
- 소스코드 제공
수정코드 배포 시
- 저작권 표시
- No Warranty
- GPL로 배포
- 소스코드 제공
- 수정 사실 및 일자

출처 : thinksquare

아래는 해당 이미지는 해당 사이트에서 제공하는 라이블러리 스크린샷입니다.

 




첨부파일 : (여기에 첨부해도 되나 ^^;;)

jquery-easyui-1.3.1.zip


URL Encoding Reference

 

ASCII Character

URL-encoding

space

%20

!

%21

"

%22

#

%23

$

%24

%

%25

&

%26

'

%27

(

%28

)

%29

*

%2A

+

%2B

,

%2C

-

%2D

.

%2E

/

%2F

0

%30

1

%31

2

%32

3

%33

4

%34

5

%35

6

%36

7

%37

8

%38

9

%39

:

%3A

;

%3B

%3C

=

%3D

%3E

?

%3F

@

%40

A

%41

B

%42

C

%43

D

%44

E

%45

F

%46

G

%47

H

%48

I

%49

J

%4A

K

%4B

L

%4C

M

%4D

N

%4E

O

%4F

P

%50

Q

%51

R

%52

S

%53

T

%54

U

%55

V

%56

W

%57

X

%58

Y

%59

Z

%5A

[

%5B

\

%5C

]

%5D

^

%5E

_

%5F

`

%60

a

%61

b

%62

c

%63

d

%64

e

%65

f

%66

g

%67

h

%68

i

%69

j

%6A

k

%6B

l

%6C

m

%6D

n

%6E

o

%6F

p

%70

q

%71

r

%72

s

%73

t

%74

u

%75

v

%76

w

%77

x

%78

y

%79

z

%7A

{

%7B

|

%7C

}

%7D

~

%7E

 

%7F

%80

 

%81

%82

ƒ

%83

%84

%85

%86

%87

ˆ

%88

%89

Š

%8A

%8B

Œ

%8C

 

%8D

Ž

%8E

 

%8F

 

%90

%91

%92

%93

%94

%95

%96

%97

˜

%98

%99

š

%9A

%9B

œ

%9C

 

%9D

ž

%9E

Ÿ

%9F

 

%A0

¡

%A1

¢

%A2

£

%A3

 

%A4

¥

%A5

|

%A6

§

%A7

¨

%A8

©

%A9

ª

%AA

«

%AB

¬

%AC

¯

%AD

®

%AE

¯

%AF

°

%B0

±

%B1

²

%B2

³

%B3

´

%B4

µ

%B5

%B6

·

%B7

¸

%B8

¹

%B9

º

%BA

»

%BB

¼

%BC

½

%BD

¾

%BE

¿

%BF

À

%C0

Á

%C1

Â

%C2

Ã

%C3

Ä

%C4

Å

%C5

Æ

%C6

Ç

%C7

È

%C8

É

%C9

Ê

%CA

Ë

%CB

Ì

%CC

Í

%CD

Î

%CE

Ï

%CF

Ð

%D0

Ñ

%D1

Ò

%D2

Ó

%D3

Ô

%D4

Õ

%D5

Ö

%D6

 

%D7

Ø

%D8

Ù

%D9

Ú

%DA

Û

%DB

Ü

%DC

Ý

%DD

Þ

%DE

ß

%DF

à

%E0

á

%E1

â

%E2

ã

%E3

ä

%E4

å

%E5

æ

%E6

ç

%E7

è

%E8

é

%E9

ê

%EA

ë

%EB

ì

%EC

í

%ED

î

%EE

ï

%EF

ð

%F0

ñ

%F1

ò

%F2

ó

%F3

ô

%F4

õ

%F5

ö

%F6

÷

%F7

ø

%F8

ù

%F9

ú

%FA

û

%FB

ü

%FC

ý

%FD

þ

%FE

ÿ

%FF

 

 


URL Encoding Reference

The ASCII device control characters %00-%1f were originally designed to control hardware devices. Control characters have nothing to do inside a URL.

 

ASCII Character

Description

URL-encoding

NUL

null character

%00

SOH

start of header

%01

STX

start of text

%02

ETX

end of text

%03

EOT

end of transmission

%04

ENQ

enquiry

%05

ACK

acknowledge

%06

BEL

bell (ring)

%07

BS

backspace

%08

HT

horizontal tab

%09

LF

line feed

%0A

VT

vertical tab

%0B

FF

form feed

%0C

CR

carriage return

%0D

SO

shift out

%0E

SI

shift in

%0F

DLE

data link escape

%10

DC1

device control 1

%11

DC2

device control 2

%12

DC3

device control 3

%13

DC4

device control 4

%14

NAK

negative acknowledge

%15

SYN

synchronize

%16

ETB

end transmission block

%17

CAN

cancel

%18

EM

end of medium

%19

SUB

substitute

%1A

ESC

escape

%1B

FS

file separator

%1C

GS

group separator

%1D

RS

record separator

%1E

US

unit separator

%1F

 

 

 

 

출처 : w3schools(http://www.w3schools.com/tags/ref_urlencode.asp)

 

이 글은 스프링노트에서 작성되었습니다.

 

The ASCII Character Set

ASCII stands for the "American Standard Code for Information Interchange".  It was designed in the early 60's, as a standard character-set for computers and hardware devices like teleprinters and tapedrives.

ASCII is a 7-bit character set containing 128 characters.

It contains the numbers from 0-9, the uppercase and lowercase English letters from A to Z, and some special characters.

The character-sets used in modern computers, HTML, and Internet are all based on ASCII.

The following table lists the 128 ASCII characters and their equivalent HTML entity codes.


ASCII Printable Characters

 

ASCII Character

HTML Entity Code

Description

 

&#32;

space

!

&#33;

exclamation mark

"

&#34;

quotation mark

#

&#35;

number sign

$

&#36;

dollar sign

%

&#37;

percent sign

&

&#38;

ampersand

'

&#39;

apostrophe

(

&#40;

left parenthesis

)

&#41;

right parenthesis

*

&#42;

asterisk

+

&#43;

plus sign

,

&#44;

comma

-

&#45;

hyphen

.

&#46;

period

/

&#47;

slash

0

&#48;

digit 0

1

&#49;

digit 1

2

&#50;

digit 2

3

&#51;

digit 3

4

&#52;

digit 4

5

&#53;

digit 5

6

&#54;

digit 6

7

&#55;

digit 7

8

&#56;

digit 8

9

&#57;

digit 9

:

&#58;

colon

;

&#59;

semicolon

&#60;

less-than

=

&#61;

equals-to

&#62;

greater-than

?

&#63;

question mark

@

&#64;

at sign

A

&#65;

uppercase A

B

&#66;

uppercase B

C

&#67;

uppercase C

D

&#68;

uppercase D

E

&#69;

uppercase E

F

&#70;

uppercase F

G

&#71;

uppercase G

H

&#72;

uppercase H

I

&#73;

uppercase I

J

&#74;

uppercase J

K

&#75;

uppercase K

L

&#76;

uppercase L

M

&#77;

uppercase M

N

&#78;

uppercase N

O

&#79;

uppercase O

P

&#80;

uppercase P

Q

&#81;

uppercase Q

R

&#82;

uppercase R

S

&#83;

uppercase S

T

&#84;

uppercase T

U

&#85;

uppercase U

V

&#86;

uppercase V

W

&#87;

uppercase W

X

&#88;

uppercase X

Y

&#89;

uppercase Y

Z

&#90;

uppercase Z

[

&#91;

left square bracket

\

&#92;

backslash

]

&#93;

right square bracket

^

&#94;

caret

_

&#95;

underscore

`

&#96;

grave accent

a

&#97;

lowercase a

b

&#98;

lowercase b

c

&#99;

lowercase c

d

&#100;

lowercase d

e

&#101;

lowercase e

f

&#102;

lowercase f

g

&#103;

lowercase g

h

&#104;

lowercase h

i

&#105;

lowercase i

j

&#106;

lowercase j

k

&#107;

lowercase k

l

&#108;

lowercase l

m

&#109;

lowercase m

n

&#110;

lowercase n

o

&#111;

lowercase o

p

&#112;

lowercase p

q

&#113;

lowercase q

r

&#114;

lowercase r

s

&#115;

lowercase s

t

&#116;

lowercase t

u

&#117;

lowercase u

v

&#118;

lowercase v

w

&#119;

lowercase w

x

&#120;

lowercase x

y

&#121;

lowercase y

z

&#122;

lowercase z

{

&#123;

left curly brace

|

&#124;

vertical bar

}

&#125;

right curly brace

~

&#126;

tilde

 

 


ASCII Device Control Characters

The ASCII device control characters were originally designed to control hardware devices.

Control characters have nothing to do inside an HTML document.

 

ASCII Character

HTML Entity Code

Description

NUL

&#00;

null character

SOH

&#01;

start of header

STX

&#02;

start of text

ETX

&#03;

end of text

EOT

&#04;

end of transmission

ENQ

&#05;

enquiry

ACK

&#06;

acknowledge

BEL

&#07;

bell (ring)

BS

&#08;

backspace

HT

&#09;

horizontal tab

LF

&#10;

line feed

VT

&#11;

vertical tab

FF

&#12;

form feed

CR

&#13;

carriage return

SO

&#14;

shift out

SI

&#15;

shift in

DLE

&#16;

data link escape

DC1

&#17;

device control 1

DC2

&#18;

device control 2

DC3

&#19;

device control 3

DC4

&#20;

device control 4

NAK

&#21;

negative acknowledge

SYN

&#22;

synchronize

ETB

&#23;

end transmission block

CAN

&#24;

cancel

EM

&#25;

end of medium

SUB

&#26;

substitute

ESC

&#27;

escape

FS

&#28;

file separator

GS

&#29;

group separator

RS

&#30;

record separator

US

&#31;

unit separator

 

 

 

DEL

&#127;

delete (rubout)

 

 

 

출처 : http://www.w3schools.com/tags/ref_ascii.asp

이 글은 스프링노트에서 작성되었습니다.

+ Recent posts