본문 바로가기

공부/컴퓨터

[HTTP] 자바 스크립트를 사용한 HTML 출력

반응형
자바 스크립트를 사용하여 반복적으로 나오는 메세지들을 쉽게 뿌려 줄 수 있다.
반복적으로 나오는 메세지들이 많다면 아주 효율적일것이다.
서버의 부하를 줄여 줄 것이다. 단 이 서버의 부하란 php나 perl 등이 돌아 가는 부하를 이야기하는것이 아니다.
http로 전송되는 용량의 크기를 줄여 주는 것이다.
( 만약 간단한 데이터를 이렇게 사용한다면 오히려 전송되는 용량이 더 많이 질 것이다. )

하지만 이렇게 스크립트를 작성한후 재로딩 되지 않는 숨겨진 페이지에서 불러서 쓴다면
다시 HTTP로 전송되는 용량을 줄일 수 있을 것이다.
( http://phpschool.com 의 j 님의 아이디어를 차용 )


구현방법:
자바스크립트로 함수를 만들어서 출력될 곳에 사용한다.
<script>
    function view(no,subject) {
        document.write("<TR><TD align=center>"+no+"</TD><TD><font color=blue>"+subject+"</TD></TR>\n");
    }
</script>

<script>view(1,"냐하하하하하");</script>
<script>view(2,"므하하하하하");</script>



현재 내 게시판의 스킨을 보면 ( 이미 스킨을 만든 분이 있는데 조금씩 수정해서 쓰고 있음 )
카테고리 설정시 ( Work 게시판 ) 제목 앞에 카테고리 이름을 출력 되게 하였다.
이것은 위와 같은 방법을 사용하여 작성한 것이다.

간단한 예제 :
<script>
        function view_category_name(foo)
        {
                <?
                        $dat_cate = mysql_query("select * from zetyx_board_category_$id");
                        $cate_count = mysql_num_rows($dat_cate);
                        while ($category_number_name = mysql_fetch_array($dat_cate) )
                        {
                        if (!$setup[use_category]) $category_number_name[name] = '' ;
                        else $category_number_name[name] = "[".$category_number_name[name]."]" ;
                        ?>
                                if ( foo == <?=$category_number_name[no]?> )
                                        document.write('<?=$category_number_name[name]?>');
                        <?
                        }
                ?>
        }
</script>
   .............

        <td align=left valign=middle style='word-break:break-all;'> <?=$insert?><?=$icon?><script>view_category_name(<?=$data[category]?>)</script> <?=$subject?> <?=$comment_new?></a></td>

  ..............


이와 같이 사용하면 작은양의 전송으로 보다더 많은 일들을 할 수 있고,
php ( 서버 측 ) 프로그램을 바꾸는것이 아니라, <script> 페이지만 변경하면
모양을 언제든지 바꿀 수 있다.


다음에 이것을 활용해서 간단한 프로그램이라도 만들어 보아야 겠다.

phpschool 의 팁엔텍에 가면 j님이 만들어 놓으신 script로 html을 만드는 소스가 있다.
반응형