일반적으로 사용되는 JavaScript 스크립트 요약 (1)_javascript 기술
이 기사에서는 주로 일반적인 JavaScript 스크립트 요약 시리즈의 첫 번째 기사를 소개합니다. 제가 여러분과 공유할 내용은 jquery가 텍스트 상자를 입력 숫자로만 제한하고 DOMContentLoaded 이벤트를 캡슐화하며 기본 JS를 사용하여 AJAX를 간단히 캡슐화한다는 것입니다. , 도메인 간 요청, JSONP, 천 번째 형식, 필요한 친구가 참조할 수 있습니다.
jquery는 텍스트 상자에 숫자만 입력하도록 제한합니다
jquery는 텍스트 상자에 숫자만 입력하도록 제한하고 IE, Chrome 및 FF와 호환됩니다(성능 효과는 다릅니다). ), 샘플 코드는 다음과 같습니다.
$("input").keyup(function(){ //keyup 이벤트 처리
$(this).val($(this).val(). replacement(/D| ^0/g,''));
}).bind("paste",function(){ //CTR V 이벤트 처리
$(this).val($(this ).val() .replace(/D|^0/g,''));
}).css("ime-mode", "disabled") //CSS 설정 입력 방법을 사용할 수 없습니다
위 코드의 기능은 0보다 큰 양의 정수만 입력할 수 있다는 것입니다.
$("#rnumber").keyup(function(){
$(this).val($(this).val().replace(/[^0-9.]/ g,''));
}).bind("paste",function(){ //CTR V 이벤트 처리
$(this).val($(this).val().replace( /[^0-9.]/g,''));
}).css("ime-mode", "disabled") //CSS 설정 입력 방법을 사용할 수 없습니다
위 코드의 기능은 0~9 사이의 숫자와 소수점만 입력할 수 있다는 것입니다.
DOMContentLoaded 이벤트 캡슐화
//domReady의 이벤트 큐 저장
eventQueue = [];
//DOM 로드 여부 판단
isReady = false;
//DOMReady 바인딩 여부 판단
isBind = false;
/*Execute domReady()
*
*@param {function}
*@execute 이벤트 핸들러를 이벤트 큐에 푸시하고 DOMContentLoaded
를 바인딩합니다. * * If DOM 로드가 완료되면 즉시 실행 > *@param null
*@execute 최신 브라우저는 ie9를 포함하여 addEvListener를 통해 DOMContentLoaded를 바인딩합니다.
ie6-8은 doScroll을 판단하여 DOM이 로드되는지 여부를 결정합니다.
*@ 호출자 domReady()
*/
함수 바인딩 준비(){
if(isReady) return;
if(isBind) return;
isBind = true;
if(window.addEventListener ) {
document.addEventListener('DOMContentLoaded' ,execFn , false);
}
else if (window.attachEvent) {
doScroll();
};
};
/*doScroll은 ie6-8의 DOM이 로드되었는지 확인합니다. Completed
*
*@param null
*@execute doScroll을 사용하여 DOM이 로드되었는지 확인합니다.
*@caller binReady( )
*/
함수 doScroll(){
시도해 보세요 {
~ > > *
* @param null
*@execute 실행 대기열에서 이벤트 핸들러를 반복합니다.
*@caller binReady()
*/
function execFn(){
if (!isReady) {
isReady = true;
for (var i = 0; i < eventQueue.length; i ) {
eventQueue [i].call(window);
};
eventQueue = [] ; 🎜> });
//js 파일 2
domReady(function(){
});
//참고로 js가 비동기적으로 로드되는 경우 바인딩하지 마세요. domReady 메소드, 그렇지 않으면 함수가 실행되지 않습니다.
//비동기적으로 로드된 js가 다운로드되기 전에 DOMContentLoaded가 트리거되었기 때문에 addEventListener가 실행될 때 더 이상 모니터링할 수 없습니다.
사용 AJAX를 간단히 캡슐화하기 위한 기본 JS
먼저 xhr 개체가 필요합니다. 이것은 우리에게는 어렵지 않습니다. 함수로 캡슐화하세요
var createAjax = function() {
var xhr = null;
try {
} Catch(e1) {
Try {
// 비-IE 브라우저
xhr = new xmlhttprequest ();
} catch (e2) {
Window.alert ("서버가 Ajax를 지원하지 않습니다. 변경하십시오!");
}
}
return xhr;
};
그럼 핵심 함수를 작성해보겠습니다.
var ajax = function(conf) {
// 초기화
//유형 매개변수, 선택사항
var type = conf.type;
//url 매개변수, 필수
var url = conf.url;
//data 매개변수는 선택사항이며 사후 요청에만 필요합니다.
var data = conf.data;
//datatype 매개변수는 선택사항입니다.
var dataType = conf. 🎜> //콜백 함수는 선택 사항입니다
var Success = conf.success;
if (type == null){
//유형 매개 변수는 선택 사항이며 기본값은 get입니다
type = "get";
}
if (dataType == null){
ajax 엔진 객체 생성
var xhr = createAjax();
// 열기
xhr.open(type , url, true);
//
보내기 if (type == "GET " || type == "get") {
("content-type",
"application/x -www-form-urlencoded");
xhr.send(data);
}
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status = = 200) {
if(dataType == "text"||dataType=="TEXT") {
if (성공 != null){
> !=" ) {
if (성공 != null){
~ > > };
};
url:"test.jsp",
data:"name=dipoo&info=good",
dataType:"json",
성공:함수(data) {
경고(데이터. 이름);
}
})
교차 도메인 요청용 JSONP
/**
* 요청 실패 처리가 추가되었습니다. 이 기능은 그다지 유용하지는 않지만 다양한 브라우저에서 스크립트의 차이점을 연구합니다.
* 1, IE6/7/8은 스크립트의 onreadystatechange 이벤트를 지원합니다
* 2. IE9/10은 스크립트의 onload 및 onreadystatechange 이벤트를 지원합니다
* 3. Firefox/Safari/Chrome/Opera는 스크립트의 onload 이벤트를 지원합니다
* 4. IE6/7/8/Opera는 onerror 이벤트를 지원하지 않습니다 script; IE9/10/Firefox/Safari/Chrome은
을 지원합니다. * 5. Opera는 onreadystatechange 이벤트를 지원하지 않지만, 이는 놀라운 특성입니다
* 6. IE9 및 IETester를 사용하여 IE6/을 테스트합니다. 7/8, ReadyState는 항상 로드되고 로드됩니다. 완전한 것은 나타나지 않았습니다.
*
* 최종 구현 아이디어:
* 1. IE9/Firefox/Safari/Chrome은 성공적인 콜백을 위해 onload 이벤트를 사용하고 오류 콜백을 위해 onerror 이벤트를 사용합니다
* 2. Opera 또한 성공적인 콜백을 위해 onload 이벤트를 사용합니다(onreadystatechange를 전혀 지원하지 않습니다). onerror를 지원하지 않으므로 여기서는 지연된 처리가 사용됩니다.
* 즉, 대기 및 성공 콜백 성공, 성공 후 완료 플래그 비트가 true로 설정됩니다. 실패는 실행되지 않으며, 그렇지 않으면 실행됩니다.
* 여기서 지연 시간 값은 매우 까다롭습니다. 이전에는 2초로 설정되어 있었으며 회사에서 테스트했을 때 문제가 되지 않았습니다. 그런데 집에서 3G 무선 네트워크를 사용해본 결과 참조한 js 파일이 존재함에도 불구하고
* 네트워크 속도가 너무 느려서 실패가 먼저 실행되고 나중에 성공이 실행되는 것을 발견했습니다. 따라서 여기서는 5초가 소요되는 것이 더 합리적입니다. 물론 절대적인 것은 아닙니다.
* 3, IE6/7/8 성공 콜백은 onreadystatechange 이벤트를 사용하며, 오류 콜백은 구현하기가 거의 어렵습니다. 가장 기술적이기도 합니다.
* http://www.php.cn/
참조 * nextSibling을 사용해 보았는데 구현이 안되는 것을 확인.
* 역겨운 점은 요청한 리소스 파일조차 존재하지 않는다는 점입니다. ReadyState도 "로드됨" 상태를 거치게 됩니다. 이렇게 하면 요청이 성공했는지 실패했는지 알 수 없습니다.
* 두려웠기 때문에 마침내 프론트엔드와 백엔드 조정 메커니즘을 사용하여 마지막 문제를 해결했습니다. 요청이 성공하든 실패하든 callback(true)을 호출하도록 하세요.
* 이때 콜백에는 성공과 실패를 구분하는 로직이 들어있습니다. 백그라운드에서 jsonp가 반환되지 않으면 실패를 호출하고 그렇지 않으면 성공을 호출합니다.
*
*
* 인터페이스
* Sjax.load(url, {
* data ) // 요청 매개변수(키-값 쌍 문자열 또는 js 객체)
* 성공 / / 성공 콜백 함수 요청
* failure // 실패 콜백 함수 요청
*scope // 콜백 함수 실행 컨텍스트
* timestamp // 타임스탬프 추가 여부
* });
*
*/
Sjax =
function(win){
var ie678 = !-[1,],
Opera = win.opera,
doc = win.document,
head = doc.getElementsByTagName('head')[0],
timeout = 3000,
done = false;
function _serialize(obj){
var a = [], key, val;
for(key in obj){
val = obj[key];
if(val.constructor == 배열){
for(var i=0 ,len=val.length;i
}
}else{
a.push (키 '=' encodeURIComponent(val));
}
}
return a.join('&');
}
함수 요청(url,opt){
function fn(){}
var opt = opt || {},
데이터 = opt.data,
성공 = opt.success || fn,
실패 = opt.failure || fn,
범위 = opt.scope || 승리하세요
timestamp = opt.timestamp;
If(data && typeof data == 'object'){
data = _serialize(data);
} }
var script = doc.createElement('script' ) ;
함수 콜백(isSucc){
if(isSucc){
🎜> done = true; 경고: jsonp가 반환되지 않았습니다.' );
}
}else{
failure.call(scope);
}
🎜> script.onload = script.onerror = script.onreadystatechange = null;
jsonp = 정의되지 않음;
만약에 ( head && script.parentNode){
head.removeChild(script); 🎜> function fixOnerror(){
setTimeout(function(){
if(!done){
callback();
}
}, timeout );
}
if(ie678){
script.onReadyStateChange = Function () {
var ReadyState = this.readyState
IF ( ! 완료 && (ReadyState == 'Loaded' || ReadyState == {
}
}
//fixOnerror();
}else{
Script.onload = function(){
콜백(true);
> script.onerror = function(){
콜백();
}
if(오페라){
fixOnerror();
}
}
if(데이터){
url = '?' 데이터;
}
if(타임스탬프){
if(데이터){
url = '&ts=';
}else{
url = '?ts='
}
url = (new Date).getTime();
}
script.src = url;
head.insertBefore(script, head.firstChild);
}
return {load:request};
}(this);
调用方式如下:
Sjax.load('jsonp66.js', {
성공: function(){alert(jsonp.name)},
실패 : function(){alert('error');}
});
千分位格式化
function toThousands(num) {
var num = (num || 0).toString(), result = '';
while (num.length > 3) {
result = ',' num.slice(-3) result;
num = num.slice(0, num.length - 3 );
}
if (num) { 결과 = num 결과; >

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











WebSocket 및 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법 소개: 지속적인 기술 개발로 음성 인식 기술은 인공 지능 분야의 중요한 부분이 되었습니다. WebSocket과 JavaScript를 기반으로 한 온라인 음성 인식 시스템은 낮은 대기 시간, 실시간, 크로스 플랫폼이라는 특징을 갖고 있으며 널리 사용되는 솔루션이 되었습니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법을 소개합니다.

WebSocket과 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 서론: 인터넷 기술의 급속한 발전과 함께 실시간 모니터링 시스템이 다양한 분야에서 널리 활용되고 있다. 실시간 모니터링을 구현하는 핵심 기술 중 하나는 WebSocket과 JavaScript의 조합입니다. 이 기사에서는 실시간 모니터링 시스템에서 WebSocket 및 JavaScript의 적용을 소개하고 코드 예제를 제공하며 구현 원칙을 자세히 설명합니다. 1. 웹소켓 기술

WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법 오늘날의 디지털 시대에는 점점 더 많은 기업과 서비스에서 온라인 예약 기능을 제공해야 합니다. 효율적인 실시간 온라인 예약 시스템을 구현하는 것이 중요합니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. WebSocket이란 무엇입니까? WebSocket은 단일 TCP 연결의 전이중 방식입니다.

JavaScript 및 WebSocket을 사용하여 실시간 온라인 주문 시스템을 구현하는 방법 소개: 인터넷의 대중화와 기술의 발전으로 점점 더 많은 레스토랑에서 온라인 주문 서비스를 제공하기 시작했습니다. 실시간 온라인 주문 시스템을 구현하기 위해 JavaScript 및 WebSocket 기술을 사용할 수 있습니다. WebSocket은 TCP 프로토콜을 기반으로 하는 전이중 통신 프로토콜로 클라이언트와 서버 간의 실시간 양방향 통신을 실현할 수 있습니다. 실시간 온라인 주문 시스템에서는 사용자가 요리를 선택하고 주문을 하면

JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법, 특정 코드 예제가 필요합니다. 서문: 웹 개발에서는 서버와의 데이터 상호 작용이 종종 포함됩니다. 서버와 통신할 때 반환된 HTTP 상태 코드를 가져와서 작업의 성공 여부를 확인하고 다양한 상태 코드에 따라 해당 처리를 수행해야 하는 경우가 많습니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법과 몇 가지 실용적인 코드 예제를 제공합니다. XMLHttpRequest 사용

JavaScript 및 WebSocket: 효율적인 실시간 일기 예보 시스템 구축 소개: 오늘날 일기 예보의 정확성은 일상 생활과 의사 결정에 매우 중요합니다. 기술이 발전함에 따라 우리는 날씨 데이터를 실시간으로 획득함으로써 보다 정확하고 신뢰할 수 있는 일기예보를 제공할 수 있습니다. 이 기사에서는 JavaScript 및 WebSocket 기술을 사용하여 효율적인 실시간 일기 예보 시스템을 구축하는 방법을 알아봅니다. 이 문서에서는 특정 코드 예제를 통해 구현 프로세스를 보여줍니다. 우리

JavaScript에서 HTTP 상태 코드를 얻는 방법 소개: 프런트 엔드 개발에서 우리는 종종 백엔드 인터페이스와의 상호 작용을 처리해야 하며 HTTP 상태 코드는 매우 중요한 부분입니다. HTTP 상태 코드를 이해하고 얻는 것은 인터페이스에서 반환된 데이터를 더 잘 처리하는 데 도움이 됩니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. HTTP 상태 코드란 무엇입니까? HTTP 상태 코드는 브라우저가 서버에 요청을 시작할 때 서비스가

사용법: JavaScript에서 insertBefore() 메서드는 DOM 트리에 새 노드를 삽입하는 데 사용됩니다. 이 방법에는 삽입할 새 노드와 참조 노드(즉, 새 노드가 삽입될 노드)라는 두 가지 매개 변수가 필요합니다.
