내가 직접 (드와르) 를 사용하여 웹 Remoting 자바스크립트 라이브러리 파일 및 키워봤지 오류가 발생하는 사파리 (데스크탑 및 아이패드) 에서만
썻냐면
>. 콜 스택 최대 크기 초과됨.
이게 정확히 어떤 오류 처리 및 정지점을 완전히 짓궂군요 있습니까?
또한 '모든 문제 해결' 사파리 (Safari 에서 '아이패드', 실제로 썻냐면 있지만브라우저에
>. Js 엑서큐션 초과됨 시간초과되었습니다.
나는 이 같은 문제가 있는 경우 콜 스택)
어디선가 함수 호출 중인 코드에서 무슨뜻이냐믄 선반가공 페이징됩니다 있는 등, 다른 함수 호출 스택을 제한값 전까지는.
이것은 거의 항상 재귀 함수, t # 39 를 기본 때문에 이런 isn& 기술입니까 충족되었습니다.
이 코드를 고려해보십시오.
(function a() {
a();
})();
다음은 후 스택할 몇몇 있다.
! 웹 검사자를
콜 스택 때까지 알 수 있듯이, 아무리 안타 제한: 브라우저 코딩된 스택할 크기 또는 메모리 소진.
확인하기 위해 해결하십시오, 재귀 함수 (base case) 가 될 수 있는 충족되었습니다.
(function a(x) {
// The following condition
// is the base case.
if ( ! x) {
return;
}
a(--x);
})(10);
내 경우, 그냥 보내기 입력입니다 요소 대신 그 값을:
$.post( '',{ registerName: $('#registerName') } )
대신:
$.post( '',{ registerName: $('#registerName').val() } )
이 임기 내 크롬 탭 didn& # 39, & # 39 점을 it show me the # 39, Wait/Kill& 못할 정도였습니다. 페이지를 보면 응답하지 않는 대화상자는 되었다.
스택 추적 감지할 수 있는 것으로 종종 문제가 스택 오버플로 해제를 진실이며당신이 won& # 39, t, s 정말로 what& # 39 에서 볼 수 있습니다.
이후 그는 '성능 탭', '및' ll get, Javascript 샘플링합니다 smartupdate 활성화되었는지 you& # 39 이 같은 일이.
어떤 도움이 되지 않을 수도 있고 또는 레드 허링 타이밍 볼 수도 있습니다.
크롬 (chrome 의 경우 동일한 데이터를 여러 곳에 나타나 마치 이 문제가 더 출력입니다 확실하게요 표시됩니다. 이 경우 스택 프레임을 히트 7152 전에 마지막으로 크래시되었습니다:
내 경우 "행사는 대한 전파 하위 요소. 따라서 걸라고 다음과 같습니다.
>. 에드스토프로파가티온 ()
클릭하면 이벤트:
$(document).on("click", ".remove-discount-button", function (e) {
e.stopPropagation();
//some code
});
$(document).on("click", ".current-code", function () {
$('.remove-discount-button').trigger("click");
});
다음은 html 코드:
<div class="current-code">
<input type="submit" name="removediscountcouponcode" value="
title="Remove" class="remove-discount-button">
</div>
무한 반복 / 실행하는 과정이 필요할 경우 몇 가지 이유로 별도의 웨브워커 스레드할 에서 사용할 수 있습니다. http://www.html5rocks.com/en/tutorials/workers/basics/
스케쳐내 다시 사용하여 dom 조작할 수 있는 요소 및 애니메이션 http://creativejs.com/resources/requestanimationframe/
또 최근에는 현장 충족되었으며 관리 사이트 - contact_type 진행하고 있다. 쉽냐구요 맞죠? 음, 만약 선택 type" 전화하시기 "; 이 오류는 묻혀 있는 jquery 통해 ajax call it 및 전송할지 시도하시겠습니까 실패하고 깊은 이케리자이스 Don& # 39, 이렇게 할 수 없다.
$.ajax({
dataType: "json",
type: "POST",
url: "/some_function.php",
data: { contact_uid:contact_uid, type:type }
});
문제는 유형: 유형 - I believe it is us 명명 인수 " type"; - # 39 이라는 변수 값을 갖는 isn& 유형, t 점이다. 우리는 변경일 이 다음과 같이 사용된다.
$.ajax({
dataType: "json",
type: "POST",
url: "/some_function.php",
data: { contact_uid:contact_uid, contact_type:type }
});
이에 따라 및 사랑하는 some_function.php - 문제는 해결되었다.
콜 스택 'a' 이 최대 크기 초과됨 오류가 발생할 수도 있습니다.
var items = [];
[].push.apply(items, new Array(1000000)); //Bad
동일한 수 있습니다.
items.push(...new Array(1000000)); //Bad
[Mizilla Docs] 에서 1:
>. 하지만 주의해야 합니다. 이렇게 하면 사용할 수 있는 위험을 실행하십시오 적용하십시오 충족시켰습니다 >. # 39 의 javascript engine& 인수 길이 제한값. 결과를 >. 너무 많은 인수 (생각하노라 수십 개 이상 있는 함수를 적용 >. 엔진 (자바스크리프트코리 는 흐름에 따라 수천 개의 인수만) >. 때문에 제한 (랑하니 심지어 직접 인수 최대 65536) >. 모든 지나치게 큰 스택할 비헤이비어를 특성상) 는 미지정을. >. 엔진 등 일부 예외를 발생시킬 것이다. 다른 서버는 퍼니셔스리 더 >. 실제로 전달되는 임의로 수를 제한하는 인수만 >. 발려짐 함수은. 예를 들어 rmw 사례: 만약 이러한 엔진 출력을 >. 4 개의 인수 (물론 실제 제한값은 제한이 있었습니다 >. 상당히 높은) 될 수 있다고 했던 것처럼 인수만 5, 6, 2, 3 >. 위의 예에서 적용하십시오 보다는 전체 전달된 것으로 알려졌다. >. 어레이입니다.
그래서 종료기:
var items = [];
var newItems = new Array(1000000);
for(var i = 0; i < newItems.length; i++){
items.push(newItems[i]);
}
여기에 대답할 수 있는 거의 모든 주에서 이 인한 이벤트여야만 무한 루프. # 39, s not true, 그렇지 않으면 오버런 통해 깊이 있는 that& 수 스택할 네스트된 페이징됩니다 아닌 말하도다 that& # 39 의 효율적인 있지만 분명 it& # 39 의 영역에서 가능한). Javascript vmo 제어할 수 있는 경우, 스택 크기를 조정할 수 있습니다. 예를 들면 다음과 같습니다.
노드입니다 스택할 크기 = 2000년 '-'
하지만 난 # 39 에 달하는 이 마음이 그러니까말이야 이전 it& 도움말에서는 이 문제를 거론하며 책정안 i found 수 있도록 한다.
이런 요소를 중첩할 생각해 보자.
<a href="#" id="profile-avatar-picker">
<span class="fa fa-camera fa-2x"></span>
<input id="avatar-file" name="avatar-file" type="file" style="display: none;" />
</a>
부모 자식 요소인 이벤트 인사이드라면 조작할 수 없습니다 경우 전달 userdic. 재귀 호출을 트로트 때까지 자체에 대한 예외는 있기 때문이다.
그래서 이 코드는 실패합니다.
$('#profile-avatar-picker').on('click', (e) => {
e.preventDefault();
$('#profilePictureFile').trigger("click");
});
이를 방지하기 위해 두 가지 옵션이 있습니다.
자 - 이제 밖으로 상위입니다.
이 경우 아래 호출 모두 동일한 코드를 작업하십시오 크롬 32tb 17905 vs 17904 내 컴퓨터의 예를 들어 1 감소했다. 그대로 실행될 경우, 그들이 오류 " RangeError 생산할 예정이다. 콜 스택 exceeded" 최대 크기. 그러나 이 제한에 따라 달라질 것으로 나타나는 컴퓨터의 하드웨어 코딩된 않습니다. 이 경우 않니다 호출되었을 함수로 나타나는 경우 즉, 이 방법으로 특정 코드를 스스로 제한은 호출되었을 호출되었을 때 보다 적은 메모리를 사용하는 함수로.
기도하였나니 비호환성의 방법:
var ninja = {
chirp: function(n) {
return n > 1 ? ninja.chirp(n-1) + "-chirp" : "chirp";
}
};
ninja.chirp(17905);
기도하였나니 함수로:
function chirp(n) {
return n > 1 ? chirp( n - 1 ) + "-chirp" : "chirp";
}
chirp(20889);
나는 또한 비슷한 문제를 안고 있는 슬라이드에서는 detaiils 상자를 사용하여 로고를 드롭다운이 濡쒓퀬 업로드하십시오 업로드할 때
<div>
<div class="uploader greyLogoBox" id="uploader" flex="64" onclick="$('#filePhoto').click()">
<img id="imageBox" src="{{ $ctrl.companyLogoUrl }}" alt=""/>
<input type="file" name="userprofile_picture" id="filePhoto" ngf-select="$ctrl.createUploadLogoRequest()"/>
<md-icon ng-if="!$ctrl.isLogoPresent" class="upload-icon" md-font-set="material-icons">cloud_upload</md-icon>
<div ng-if="!$ctrl.isLogoPresent" class="text">Drag and drop a file here, or click to upload</div>
</div>
<script type="text/javascript">
var imageLoader = document.getElementById('filePhoto');
imageLoader.addEventListener('change', handleImage, false);
function handleImage(e) {
var reader = new FileReader();
reader.onload = function (event) {
$('.uploader img').attr('src',event.target.result);
}
reader.readAsDataURL(e.target.files[0]);
}
</script>
</div>
크세이크스
.uploader {
position:relative;
overflow:hidden;
height:100px;
max-width: 75%;
margin: auto;
text-align: center;
img{
max-width: 464px;
max-height: 100px;
z-index:1;
border:none;
}
.drag-drop-zone {
background: rgba(0, 0, 0, 0.04);
border: 1px solid rgba(0, 0, 0, 0.12);
padding: 32px;
}
}
.uploader img{
max-width: 464px;
max-height: 100px;
z-index:1;
border:none;
}
.greyLogoBox {
width: 100%;
background: #EBEBEB;
border: 1px solid #D7D7D7;
text-align: center;
height: 100px;
padding-top: 22px;
box-sizing: border-box;
}
#filePhoto{
position:absolute;
width:464px;
height:100px;
left:0;
top:0;
z-index:2;
opacity:0;
cursor:pointer;
}
내 코드 수정 전에 없었다.
function handleImage(e) {
var reader = new FileReader();
reader.onload = function (event) {
onclick="$('#filePhoto').click()"
$('.uploader img').attr('src',event.target.result);
}
reader.readAsDataURL(e.target.files[0]);
}
오류 콘솔:
내가 온 클릭, 이를 해결할 제거하여 " '= $ (& # 39, # filePhoto& # 39;)' 에서 " 클릭하십시오. (), div 태그를.