Nice programing

jQuery에 전역 값 (전역 변수 일 필요는 없음)을 저장하는 방법은 무엇입니까?

nicepro 2020. 10. 7. 08:18
반응형

jQuery에 전역 값 (전역 변수 일 필요는 없음)을 저장하는 방법은 무엇입니까?


현재 저는 수많은 JavaScript, jQuery, Microsoft 클라이언트 JavaScript 및 기타 라이브러리를 사용하는 레거시 웹 페이지에서 작업하고 있습니다. 결론-비즈니스가 정당화 할 수 없기 때문에 전체 페이지를 처음부터 다시 작성할 수 없습니다. 그래서 ... 그게 바로 그 거예요. 어쨌든, 변수를 사용하여 전역 네임 스페이스를 오염시켜야합니다. 제가 생각했던 세 가지 옵션이 있습니다.

  1. 일반 JavaScript 선언을 사용하여 저장 / 검색하십시오. var x = 0;

  2. jQuery를 사용하여 DOM 태그에 값을 저장 / 검색- $("body").data("x", 0);

  3. 숨겨진 양식 필드를 사용하고 jQuery로 값을 설정 / 검색합니다. $("whatever").data("x", 0);

더 좋은 방법이 있습니까? 기존 코드 더미를 살펴 보았지만 변수가 함수에서 범위를 지정할 수 있다고 생각하지 않습니다.


다음과 같이 jQuery 객체 내에 네임 스페이스를 만들 수 있습니다.

$.mynamespace = { 
    myVar : "something", 
    myVar2 : "somethingElse" 
}; 

또는:

$.mynamespace = {};
$.mynamespace.myVar = "something";
$.mynamespace.myVar2 = "somethingElse";

'mynamespace'라는 이름의 플러그인 메서드는 덮어 쓰여 지므로 적절한 이름을 사용해야합니다.


나에게이 상황을 처리하는 가장 좋은 방법은 창 개체에 개체를 정의하는 것입니다.

window.my_config =
{
    my_var1 : 1,
    my_var1 : 2,
    my_var1 : 3
};

이렇게하면 스코프가 깔끔하고 깨끗하게 유지됩니다. 그리고 window.my_config코드를 보는 사람을 사용하여 전역에 액세스 할 때마다 전역이 액세스되고 있음을 알 수 있습니다.


전역 범위에서 해시를 만들고 네임 스페이스로 사용할 수 있습니다.

MyNamepace={}
MyNamespace.newvar = 'value'
// MyNamespace.newvar => 'value'

내 연습을 당신과 공유하기 만하면이 개체가 텍스트 상자가 될 페이지에서 작업하는 것처럼 필요한 JavaScript 파일에 전역 개체 / var를 합리적인 접두사로 만들 것입니다.

g_TxtMyValue = 'value';    // g_ specifies it to be a global variable, it is one
                           // of the many conventions used

전역 변수가 두 개 이상인 경우 다음과 같은 네임 스페이스도 가질 수 있습니다.

my_txt = {};  // For a real site I would use a prefix relative to the project
              // name instead of "my".

my_txt.testValueOne = 'Value one';
my_txt.testValueOne = 'Value two';

이러한 변수는 초기화 된 후 웹 사이트 전체에서 사용할 수 있습니다.

이게 도움이 되길 바란다.


밑줄을 사용하십시오 isEmpty().

_.isEmpty('')반환 true됩니다.


짧은 알림 :

fancybox가 다음과 같이 AJAX를 수행합니까 (즉, iFrame 내에서로드되는 경우 close 메소드에 "parent"를 추가해야 함).

parent.$.fancybox.close();

참고 URL : https://stackoverflow.com/questions/2866866/how-to-store-a-global-value-not-necessarily-a-global-variable-in-jquery

반응형