uncaught RangeError: Maximum call stack size exceeded

에러노트|2021. 8. 10. 11:58
반응형

"최대 호출 스택 크기 초과" 실제로 재귀호출이나 무한 루프로 인한 오류가 원인일 수 있으나

 

또 다른 원인으로 ajax 호출 시 parameter 에 object 의 value 값이 아닌 object 를 넘긴 경우에 발생할 수 있다.

 

왠 무한 루프지 하고 코드를 아무리 보아도 문제가 루프는 찾을 수 없었으나 

 

parameter에 object 를 넘긴 것이 실수..아마도 object의 모든 속성(?)을 넘겨서 그런것이 아닐까 하는 추측.

 

필자의 경우 

 

var a = $(this);

 

a 를 ajax Parameter로 넘겨서 발생함.

댓글()

javascript Table 로 Excel 파일 생성 다운받기

Progmming/Javascript|2021. 7. 29. 15:49
반응형

table id 를 지정해서

 

해당 테이블을 엑셀 파일로 생성시켜주는 함수.

 

테이블 아이디 , 파일명 ,  시트명을 변수처리함.

 

    var makeToExcel = (function () { 
        var style = "<style> td,th {width:100px;} </style>";
        var uri = 'data:application/vnd.ms-excel;base64,'
            , template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->' + style + '<meta http-equiv="Content-Type" content="application/vnd.ms-excel; charset=utf-8"/></head><body><table border="1">{table}</table></body></html>'
            , base64 = function (s) {
                return window.btoa(unescape(encodeURIComponent(s)))
            }
            , format = function (s, c) {
                return s.replace(/{(\w+)}/g, function (m, p) { return c[p]; })
            }
        return function (table, fileName , sheetName) {
            if (!table.nodeType) table = document.getElementById(table)
            var ctx = { worksheet: sheetName || 'Worksheet', table: table.innerHTML }
			console.log(table.innerHTML); 
            let a = document.createElement('a');
        a.href = uri + base64(format(template, ctx));
        a.download = fileName+'.xls';
        a.click();
        }
    })()
	
	makeToExcel('테이블아이디', '파일명' ,'시트명');

댓글()

유동적인 테이블 Td 셀 병합 rowspan 처리 Javascript 함수

Open API/그 외 |2021. 7. 22. 10:22
반응형

지정 항목의 tr > td 값에 값이 동일 한 경우 rowspan 처리해주는 Javascript 함수입니다.

 

주석 처리된 라인의 경우 contains 를 사용하여 포함된 조건이어서 일부 상황에서 정렬에 의해 해당  Row 사이에 다른 Row가 존재하는 경우 문제가 생길수 있는 상태인데

원작자의 글 댓글에 일치하는 조건으로 코드 개선해주신분이 계셔서 취합했습니다.

 

$(document).ready(function(e){
    genRowspan("td 클래스명");
});
 
function genRowspan(className){
    $("." + className).each(function() {
        //var rows = $("." + className + ":contains('" + $(this).text() + "')");
        var sText = $(this).text();
        var rows = $("." + className).filter(function() {
        	return $(this).text() == sText;
        });
        if (rows.length > 1) {
            rows.eq(0).attr("rowspan", rows.length);
            rows.not(":eq(0)").remove();
        }
    });
}

 

https://zero-gravity.tistory.com/311

 

[jQuery] 유동적인 테이블 셀병합 - rowspan

 위와 같이 소속에 같은 데이터가 있을 경우 하나의 셀로 병합해주는 코드다. $(document).ready(function(e){ genRowspan("td 클래스명"); }); function genRowspan(className){ $("." + className).each(funct..

zero-gravity.tistory.com

https://api.jquery.com/contains-selector/

 

:contains() Selector | jQuery API Documentation

Description: Select all elements that contain the specified text. The matching text can appear directly within the selected element, in any of that element's descendants, or a combination thereof. As with attribute value selectors, text inside the parenthe

api.jquery.com

 

댓글()

Visual Studio Code FTP 설치하기

Progmming/PHP|2021. 7. 12. 13:36
반응형

 

확장 탭에서 "ftp-simple"를 검색하고 설치합니다.

 

 

설치 후 F1 을 눌러서 검색창을 열고 ftp 를 검색하면 아래와 같이 검색 됩니다. 

 

 

위와 같이 보이시면 ftp-simple : config - FTP connection setting 을 선택합니다.

 

 

아마도 보시면 아시겠지만 각 항목은 위와 같이 입력합니다.

댓글()

Visual Studio Code 한국어 팩 설치 방법

Progmming/PHP|2021. 7. 12. 13:29
반응형

 

확장 탭 에서 "Korean"을 검색하면 "Korean Language Pack for Visual Studio Code" 가 검색됩니다.

 

이미 설치했기 때문에    치  라고 나옵니다만  Install  이라고 보이실텐데 설치하시면 됩니다.

 

설치 후 VS Code를 재시작해주시면 한글팩이 설치되어 한글로 보이게 됩니다.

댓글()

WerFault.exe 웹서버 부하 해결 - 임시조치와 근본적인 해결 방법

OS/Microsoft|2021. 4. 27. 16:34
반응형

WerFault.exe 프로세스로 인해 웹서버 부하가 높아졌다.

호스팅 서버였기 때문에 임시 조치로 에러 리포팅 서비스를 중지시켜버렸다.

이렇게 에러 리포팅으로 인한 서버 부하는 해결이 되었다.

 

Windows Error Reporting Service   WERSVC

 

Faulting application name: w3wp.exe 
Faulting module name: ntdll.dll

 

 

 

하지만 근본적인 오류가 해결된 것은 아니기에..

 

근본적인 해결 방법은 오류 메시지가 발생하는 부분을 찾아 수정해야하는데

이 에러 로그는 이벤트 뷰어에서 확인이 가능하다. 

댓글()

CSS 긴 텍스트 말줄임 처리하기

CSS|2021. 4. 27. 14:14
반응형

 

초과 되어 줄이 바뀌거나 UI가 깨지는 경우

... 말줄임 표로 처리하여 한줄에 노출 되도록 함.

 

 

<style type="text/css">
.target
{
  display: inline-block;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
</style>

 

댓글()

MS SQL 비트연산(&)

DataBase/MS-SQL|2020. 12. 22. 10:42
반응형

사용 배경은 계속적으로 추가되는 Flag 컬럼에 대해 고민 중 하나의 공용 컬럼에 값을 다 넣어버리기로 함.

 

 

DECLARE @i INT
SET @i = 6
SELECT @i & 1  , 결과 => 0
SELECT @i & 2  , 결과 => 2 
SELECT @i & 4  , 결과 => 4
SELECT @i & 6  , 결과 => 6
SELECT @i & 8  , 결과 => 0

 

INT 타입의 컬럼에 정수형 데이터를 넣고 2진법으로 보아 계산을 하는 방법.

 

2번째 조회인 @i & 2 의 내용을 보면.

 

6 > 0110

2 > 0010

======

      0010  > 2

결과 값이 2가 나온다.

 

일반적으로 사용할 경우에는

 

SELECT *

FROM 테이블

WHERE 컬럼 & 2 > 0

위와 같이 0보다 크거나(True) 작은 경우(False)로 구분하여 사용된다.

 

 

ex)

취미 체크하기

ㅁ 축구(1) ㅁ농구(2) ㅁ독서(4)

 

위와 같이 체크박스가 있는 경우 취미가 축구와 독서일 경우

저장값은 두 값의 합을 넣는다.   >> 5 

 


DECLARE @i INT
SET @i = 5
SELECT @i & 1  , 결과 => 1
SELECT @i & 2  , 결과 => 0
SELECT @i & 4  , 결과 => 4

 

 

축구가 포함된 경우를 찾으려면


SELECT *
FROM TABLE

WHERE 취미 & 1 > 0 

 

위와 같이 찾는다.

 

 

댓글()