Popper.js Tutorial in 3 Minutes

이 튜토리얼에서 Red Stapler Channel에 오신 것을 환영합니다 popper

js에 대해 이야기하겠습니다 HTML 요소의 위치를 ​​정하는 데 도움이되는 멋진 JavaScript 라이브러리 특히 알림 상자 나 메시지가 웹 사이트에서 확인해 보도록하겠습니다 popperjs의 프로젝트 페이지가 있습니다 이제 각 기능에 대한 예제 코드와 데모를 얻을 수 있습니다

github 페이지에서 popperjs의 최신 릴리스를 다운로드하여 시작하십시오 튜토리얼을 다운로드하면 라이브러리가 dist 폴더에 있습니다 몇 가지 유형의 출시가 있지만 웹으로 가져 오려는 경우 UMD 또는 범용 모듈에있는 스크립트 태그를 사용해야하는 스크립트 태그가있는 페이지 definition folder 이제 popperjs를 웹 디렉토리에 복사했습니다

스크립트 태그로 가져온 다음 여기에 버튼이있는 간단한 HTML 페이지가 있습니다 orange div는 페이지에있을 수있는 데이터 요소를 나타냅니다 버튼을 클릭 할 때 팝업 메시지를 추가하려고한다고 가정 해 보겠습니다 div 요소 추가 버튼을 클릭하면 숨겨진 상태로 표시됩니다 이제 우리 팝업 요소가 블록으로 표시되고 실제로는 표시되지 않습니다

정상적으로 떠있는 경우 더 많은 자바 스크립트와 CSS 스타일을 추가해야 할 것입니다 popperjs를 사용하여 포지셔닝을 처리하기 위해 훨씬 쉽습니다 새로운 popper 객체를 div 요소 또는 기타로 만든 다음 이 경우 참조로 사용하려는 요소는 버튼이며 다음에 팝업 요소와 마지막으로 옵션이 많이 있습니다 사용할 수있는 첫 번째 시도는 게재 위치입니다

그게 당신이 필요한 배치와 포퍼를 말할 필요가 있어요 popperjs의 또 다른 멋진 기능을 나머지는 수행합니다 팝업이 뷰포트를 떠날 때 당신을 위해 뒤집기를 할 것입니까? 물론 수정자를 추가하여 뒤집기 동작을 사용자 정의 할 수 있습니다 옵션을 선택하고 popper

js에 방향 바꾸기를 허용 할 방향을 알려줍니다 문서 페이지를 발견하고 다른 흥미로운 수정자를 시도 할 수 있습니다 예를 들어 오프셋을 추가하여 팝업 위치의 오프셋을 설정할 수 있습니다 이 수정 자 마지막으로 popper는 pop의 위치 지정에 대한 정보를 반환 할 수 있습니다 up 요소를 사용하면 onCreate 콜백 함수를 전달하고 데이터 객체를 추가 할 수 있습니다 이렇게 그래서이 비디오가 popper

js에 대한 아이디어를 줄 수 있기를 바랍니다 언제나처럼이 비디오를 좋아 하시길 바랍니다 우리가 다음 비디오에서 뵙겠습니다

jQuery

[세미나 : JQUERY] [Vipul Shekhawat, 하버드 대학교] [이것은 CS50입니다] [CS50

TV] 집에서 따라 다니는 경우 실제로 온라인으로 내 슬라이드에 액세스 할 수 있습니다 이 링크로 이동합니다 bitly에 TjjRWj입니다

URL로 바로 이동할 수도 있습니다 클라우드입니다 cs50net/~vshekhawat, 내 이름은, 및 jquery 집에서 시청하는 경우 따라야 할 것이므로 적극 권합니다

이 대화식 프레 젠 테이션이기 때문에 여기에있는 경우에도 마찬가지입니다 오늘 저는 jQuery에 대해 이야기 할 것입니다 첫 번째 질문은, jQuery 란 무엇입니까? 올해는 자바 스크립트를 다루지 않았 음을 알고 있습니다 우리가 지난 몇 년 동안 가지고있는만큼 상세하게 JavaScript는 무엇보다도 클라이언트 측 언어입니다 각 사용자의 컴퓨터에서 스크립트 및 코드를 실행하는 데 사용됩니다

따라서 사람들에게 웹 페이지를 제공하는 서버가 있습니다 그러나 당신은 그들의 기계에서 물건을하고 싶을지도 모릅니다 30 초마다 서버에 요청을 보내도록 컴퓨터에 요청하십시오 JavaScript를 사용하여이를 수행 할 수 있습니다 JQuery는 JavaScript 위에 더 많은 기능을 제공합니다

당신을 위해 여분의 일을합니다 상단의 내용을 보면, 그것은 당신이 할 수있는 것들을 설명합니다 전체적으로 2006 년 1 월에 만들어졌습니다 그것은 2005 년 8 월에 처음으로 잉태되었습니다 2 년 전부터 있었고 새로운 웹 2

0 운동의 일부입니다 인터넷이 너무 반짝 거리게되었습니다 가장 널리 사용되는 JavaScript 라이브러리입니다 1960 만 이상의 웹 사이트에서 사용하고 있으며 사용량은 계속 증가하고 있습니다 분명히 작년에 걸쳐, builtwith

com에 따르면, 이제 막 공정하게 선형 적으로 계속 증가하고 있습니다 1000 만 사이트 중 아직까지 – 약 40 %가 현재 그것을 사용하고 있습니다 페이스 북은 그것을 사용하고, 다른 많은 웹 사이트는 현재 그것을 사용합니다 원하는 경우 통계를 직접 볼 수 있습니다 재단과 이사회 위원이 13 명이므로 합법적이라고 말할 수 있습니다

20 명으로 구성된 팀과 함께 정기적으로 작업합니다 그래서 매우 널리 사용되며 org URL을 가지고 있습니다 그것은 다른 것들에 대한 스핀 오프를 가지고 있으므로 큰 문제입니다 왜 그것을 사용해야합니까? JQuery는 매우 가볍다

그것은 거대한 파일이 아니라는 것을 의미합니다 너는 다운로드 할 수있어 모든 공백과 주석이없는 축소 된 파일이며 단지 32KB입니다 따라서 웹 페이지를 던지기가 쉽습니다 그리고 그것을 사용하기 시작합니다

또한 매우 효율적으로 작성되었으므로 많은 부분을 차지하지 않습니다 당신이 그것을 사용할 때 당신의 웹 사이트를 많이 늦추지는 않습니다 이전에는 불가능했던 것을 구현할 수 있습니다 기능의 일부 측면이 있습니다 일반적으로 매우 어려울 애니메이션을 만드는 것과 같습니다

그러나 jQuery에서 실제로는 매우 간단합니다 그리고 성가신 몇 가지 일이 있습니다 POST 요청 전송과 같은 JavaScript에서 가능하며, 하지만 서버에 요청을 보내려면 5 줄 또는 6 줄 또는 7 줄의 코드 이제는 단일 함수 호출로 단일 코드 행에서이를 수행 할 수 있습니다 그건 정말 당신이하는 많은 것들을 단순화합니다

그리고 모든 멋진 아이들이 그것을 사용하고 있습니다 그걸로, 나는 의미한다 작년 내 마지막 프로젝트 인 newswhrborg에서, 라디오 방송국 용입니다

이 블로그를 만들었습니다 우리가 해본 모든 프로그램과 MP3 파일을 호스트합니다 과거 공연을 둘러 보거나, jQuery를 사용하여 모든 작업을 완료 할 수 있습니다 당신을 말할 수있다 근본적으로 모든 애니메이션 때문입니다 그래서 만약 당신이 – 만약 당신이 새로운 게시물을 만들고있어, 너는이 작은 slideDowns을 본다; jQuery를 사용하면이 모든 작업을 완료 할 수 있습니다

그리고 이것은 퇴색합니다 – 그래서 jQuery를 사용하여 모든 일이 완료됩니다 사이트를 탐색하기 위해 페이지를 계속 새로 고침 할 필요가 없습니다 jQuery를 사용하여 만든 또 다른 멋진 점은이 프레젠테이션입니다 나는이 오픈 소스를 사용하여 scrolldeck이라고 불렀다 누군가 jQuery 위에 썼다

실제로 소스를 보면, 그들은이 달러 기호를 사용하고 있습니다 달러 기호 함수가 jQuery 함수임을 나타 내기 위해 jQuery에서 사용됩니다 그래서 그들은 jQuery 위에 래퍼를 정의하고있다 당신이 이렇게 프리젠 테이션을 할 수있게 해주는 것, 여기에 원래 jQuery 파일이 포함되어 있다는 것을 알 수 있습니다 jQuery를 사용하려는 경우 포함시켜야 할 내용입니다

자신의 웹 사이트에서 그걸 만지면 어떻게 설치하나요? jQuerycom으로 이동하여 파일을 다운로드 할 수 있습니다 그것을 웹 디렉토리에 추가하고 그것을 포함하십시오 HTML 파일의 head 태그 상단에 있습니다 기본 HTML 파일의 코드 행을 가져옵니다

사용중인 jQuery 버전에 맞는 올바른 버전을 사용하십시오 jQuerycom으로 이동하여 다운로드 할 수 있습니다 "download jQuery"를 클릭하십시오 그게 전부 야

실제로, 우리는 그것이 어떻게 생겼는지 살펴볼 수 있습니다 여기를 클릭하면 jQuery가 다운로드됩니다 그것은 당신을 위해 모든 마법 물건을 수행하는 하나의 큰 자바 스크립트 파일입니다 이것은 완전히 읽을 수없는 축소 된 버전입니다 읽을 수있는 개발 버전을 볼 수도 있습니다

그러나 여전히 매우, 매우 길다 거기에 많은 것들이 있습니다 Google의 호스팅 된 버전에 연결할 수도 있습니다 따라서이 기능을 사용하면 Google에서 제공 할 수 있습니다 그들은 항상 사용할 수있는 모든 버전을 제공합니다

그래서 당신은 아마 당신을 위해 그것을 호스팅하는 구글에 의존 할 수 있습니다 또는 jQuery 자체의 최신 버전에 링크 할 수 있습니다 URL은 항상 최신 버전으로 업데이트됩니다 그것은 jQuery 최신이고, 거기에 하나의 문제가 있습니다 업데이트 된 jQuery와 이전 기능 중 일부가 그들은 역행하거나 비참하게되었지만, 그렇지 않을 수도 있습니다

더 이상 지원되지 않을 수도 있습니다 따라서 버전 182를 사용하여 웹 사이트를 작성하는 경우, 시간이 갈수록 27 버전이 나온다

당신이 쓴 함수 중 일부는 더 이상 작동하지 않습니다 따라서 32KB 파일을 다운로드하는 것이 좋습니다 귀하의 웹 페이지에 그것을 넣어, 그리고 영원히 작동합니다 이제 jQuery의 실제 기능에 대해 이야기하겠습니다 우선 선택자입니다

이것이 jQuery가 처음 제공 한 것입니다 그리고 당신은 볼 문서를 클릭 할 수 있습니다 내가 다루어야 할 선택자에 대한 자세한 문서 선택자 뒤에있는 아이디어는 페이지에서 HTML 요소를 선택할 수 있다는 것입니다 페이지의 요소에는 ID, 클래스 및 기타 식별 측면이 있습니다 다른 명령을 받았습니다

시간의 일부는 서로 내부에 중첩되어 있습니다 JQuery를 사용하면 페이지에서 요소를 검색하는 간단한 쿼리를 작성할 수있다 그런 다음 jQuery 함수를 사용하여 이러한 요소를 조작 할 수 있습니다 그것은 나중에 우리가 얻을 조작부입니다 HTML을 변경하거나, CSS를 변경하거나, 또한 특정 이벤트에서 활성화되는 기능을 애니메이션으로 추가 할 수 있습니다

예를 들어, 어떤 것이 클릭되면, 당신은 어떤 일이 일어나길 원합니다 jQuery를 사용하여 그렇게 할 수있다 그리고 요소를 선택할 수있는 방대한 수의 방법이 있습니다 그들 중 대부분은 한번도 사용해 본 적이 없지만 기본적인 것들이 있습니다 그것은 매우 중요합니다

예를 들어 요소 선택기는 아무 것도 선택하지 않은 경우입니다 그 div입니다 – 실제로이 슬라이드 프레 젠 테이션을위한 코드를 엽니 다 예를 들어 첫 번째 슬라이드가 있습니다 여기에 div가 있습니다 실제로 페이지의 모든 div를 선택하면 이 파일에 존재하는 모든 div를 배열로 줄 것입니다

ID 선택기를 사용하면 주어진 ID로 무엇이든 선택할 수 있습니다 예를 들어,이 항목에 ID "what"이 있으면 ID 대신 #what을 사용하여이 작업을 수행 한 경우, 단일 요소가 있고 페이지의 해당 요소 인 배열을 반환합니다 우리는 또한 셀렉터를 div 인 ID가있는 항목 만 선택하십시오 그래 해당 ID가있는 div 만 선택하십시오

클래스의 경우 점을 사용하기 만하면 CSS와 같은 것입니다 하강도 작용한다 그래서 어떤 수업을 듣는다면 그 안에 중첩 된 요소가 있습니다 예를 들어, 어떤 클래스가 있고 다른 페이지에 링크 할 앵커 태그가 있습니다 이 구문을 사용하여 링크를 검색 할 수 있습니다

한 번에 여러 항목을 선택할 수도 있습니다 쉼표로 구분하면됩니다 원하는 셀렉터를 사용하면 모든 배열을 한 번에 하나의 배열로 선택할 수 있습니다 그런 다음 선택기가 없으므로 모든 div를 선택할 수 있습니다 어떤 특정 클래스가 없습니다

그리고 이것은 어떻게이 선택이 작동하는지에 대한 소개를 얻는 데 도움이 될 것입니다 몇 가지 구체적인 예를 몇 초 동안 보여 드리겠습니다 고급 선택기는 다음과 같습니다 수십 가지가 있지만 이미지 태그를 모두 선택하려면 일부 요소 내에서 다음을 수행하면됩니다 image

짝수 요소를 선택하려면 (예 : 20 개가있는 경우) 당신은 0, 2, 4, 6 등을 선택하고 싶습니다 당신도 할 수 있습니다 : 심지어, 또는 당신도 할 수 있습니다 : 이상한 이들은 의사 선택기입니다 즉, 실제로는 모든 요소를 ​​선택하고 모두 선택하는 것이 아닙니다 또한 각 요소는 특정 속성을 가질 수 있습니다

예를 들어, class = center는 속성이기도합니다 이 앵커 태그의 경우 href, 하이퍼 텍스트 참조도 속성입니다 따라서 특정 페이지 또는 특정 페이지로 연결되는 항목을 선택할 수 있습니다 이는 정말 일반적입니다 원하는 속성으로 무엇이든 선택할 수 있습니다

그리고 속성도 포함됩니다 예를 들어, 모든 입력 요소를 선택하려면 그 (것)들의 이름으로 낱말 "통행"가있는, 페이지에 입력 텍스트 블록이있는 경우 그건 "암호"라고 불리는데, 그 암호를 선택할 수있는 방법 중 하나입니다 그리고 더 많은 것이 있습니다 문서를 살펴볼 수 있습니다 어떻게 작동하는지에 대한 구체적인 예를 참조하십시오

다음은 DOM 조작입니다 요소를 선택하면 실제로 요소를 추가하려고합니다 지금까지 우리는 전혀 보지 않았지만 문서를 보면, 우리가 할 수있는 일이 정말로 많습니다 이 시점에서 우리는이 프레젠테이션에서 요소를 선택하게 될 것입니다 jQuery를 사용하여 조작 할 수 있습니다

이것은 jQuery를 사용하여 구현되었으므로 jQuery 라이브러리에 액세스 할 수 있으며, 이 코드에서 이러한 함수를 사용할 수 있습니다 당신이 알지 못할 수도있는 유용한 한가지는 콘솔입니다 그리고 Google 크롬은 제가 사용하고 있습니다 alt 명령 J를 누를 수 있습니다 또는 alt 컨트롤 J를 사용하여 콘솔을 엽니 다

파이어 폭스에서는 커맨드 시프트 K 또는 컨트롤 시프트 K라고 생각합니다 Safari에서는 일부 설정을 변경해야합니다 원하는 경우 링크가 있지만 Chrome 또는 Firefox를 가져 오는 것이 좋습니다 그럼 콘솔을여십시오, 여기 있습니다 그것은 기본적으로 당신이 원하는 무엇이든 할 수 있습니다

따라서 x라는 변수를 만들면됩니다 x = 5, x + 2가 무엇인지 봅시다 심지어 CS +와 같은 것을 할 수 있습니다, x + 45, CS50이 될 것입니다 몇 가지 일반적인 자바 스크립트 작업 만 수행 할 수 있습니다 하지만 여기서도 jQuery를 할 수 있습니다

여기서 첫 번째 측면을 살펴 보겠습니다 우리는 문자열 인 HTML이라는 변수를 생성 할 것입니다 그것은 새로운 텍스트라고하는 단락 태그를 가지고 있습니다 그래서 우리는 단락 태그 안에이 HTML을 가지고 있습니다 그것은 새로운 텍스트입니다

이제 실제로 페이지에 추가하려고합니다 이 단락의 HTML (이 제목은 여기에 추가 ID)이되도록 설정했습니다 추가 ID를 선택하고 추가합니다 방금 만든 HTML 변수, 이 단락 태그 바로 뒤에 HTML이 끝에 추가됩니다 그래서 우리가 그렇게한다면 – 우리는이 단락을 선택했습니다, 방금 추가 한 HTML 변수로 append 함수를 호출했습니다 페이지에 새 텍스트가 추가됩니다

우리는 또한 그 요소의 시작 부분에 앞서 갈 것이라는 의미 인 앞에 붙일 수 있습니다 그래서 처음부터 새로운 텍스트가 있습니다 나는 방금 진행 한이 물건들을 없애기 위해 새로 고침 할 수 있습니다 그러나 이것은 prepend와 append 메소드를 사용하는 방법의 예입니다 페이지의 내용을 조작하려면 HTML을 추가하십시오

수업을 변경할 수도 있습니다 이 스타일 파일로 돌아가서, 나는 이것을 win 클래스 용으로 만들었습니다 텍스트 색상은 빨간색, 배경색은 텍스트, 그림자는 텍스트입니다 그것은 끔찍한 것처럼 보이지만 실제로 할 수 있습니다 – 이 단락은 클래스 ID에 해당합니다 그래서 나는 승리를위한 클래스를 추가 할 수 있습니다

나는 이것을 콘솔에서 실행할 수있다 그리고 그것은 그 수업을 추가 할 것이고, 지금은 예상대로 끔찍한 것처럼 보입니다 CSS는 자동으로 클래스에 적용됩니다 클래스에 CSS가 있으면 자동으로 적용됩니다 요소의 클래스를 변경하는 경우 그런 다음 remove 클래스를 사용하여 제거 할 수 있습니다

따라서 빨간색 또는 강조 표시된 것과 같은 미리 정의 된 클래스가있는 경우, 그런 다음 요소에 적용하려는 경우, 매번 모든 CSS 스타일을 적용 할 필요는 없습니다 요소에 클래스를 추가하면 자동으로 다음과 같이됩니다 해당 클래스에 대해 자동으로 적절하게 보입니다 우리는 또한 사물을 제거 할 수 있습니다 모든 div를 선택하겠습니다

페이지에서 제거하십시오 그게 어떤 모습일까요? 아무것도 보이지 않을 것이므로 실제로는 아무것도 남지 않았습니다 제 발표가 끝났습니다 다행스럽게도 나는 새로 고침하고 가져올 수 있습니다 한 번만 실행되기 때문에 하지만 그것은 페이지의 요소를 완전히 파괴하려는 경우 제거의 예입니다

덮어 쓸 수도 있으며 페이지의 모든 단락 태그를 선택하겠습니다 그들 안에 들어가서 그들이 가지고있는 텍스트를 대체하십시오 "테스트"라는 단어 만 있으면됩니다 이렇게하면 페이지의 모든 단락을이 테스트로 바꿉니다 네

그들은 모두 테스트로 대체됩니다 이것이 텍스트에 액세스하여 덮어 쓰는 예제입니다 또한 정보를 검색 할 수 있으며 이는 입력 상자에서 정말 좋습니다 사람들이 입력하는 입력 상자가 있다면, 사람들은 그것에 물건을 입력하고 있습니다 여기에서는 입력, 텍스트 유형의 입력 태그를 선택합니다

이 경우 전체 프리젠 테이션에는 하나의 입력 상자 만 있습니다 그래서 우리는 첫 번째 것을 선택하고, 그 위에 val 함수를 호출합니다 그러면 값이 반환되고 입력 상자의 경우 그 가치는 그 안에 어떤 일이 일어나고있는 그대로입니다 그래서 우리가 이렇게하면, 그냥 문자열 물건을 반환합니다 그리고 우리가 더 많은 것을 쓰고 난 후에 그것을 다시 부른다면, 그것은 더 많은 것들로 변합니다

이것이 입력 상자의 요소에 액세스하는 좋은 방법 중 하나이며, 유효한 전자 메일 주소입니까? 예를 들어 유효한 날짜입니까? 사람들이 입력하는 즉시 물건을 검색 할 수 있습니다 그리고 그것이 유효한지, 서버로 되돌려 보내고, 당신이 원하는 것을해라 그리고 그 상자 안에있는 것들에 액세스하는 방법입니다 CSS를 직접 수정할 수도 있습니다 일부 미리 정의 된 속성이있는 클래스 원하는 CSS를 추가 할 수 있습니다

그러면 전체 프레젠테이션 인 본문을 선택하겠습니다 color는 텍스트의 색을 정의하는 속성입니다 빨간색으로 변경하면 페이지의 모든 텍스트가 빨간색으로 바뀝니다 우리는 배경색 파란색, 우리는 거기에 갈; 아름다워 이것으로 원하는 모든 것을 할 수 있습니다

CSS 속성을 사용하면 언제든지 모양을 실제로 수정할 수 있습니다 다음은 효과입니다 효과는 기본적으로 CSS 수정과 같습니다 그러나 그들은 실제로 그것에 약간의 애니메이션을 제공합니다 따라서 단순히 뭔가를 보이거나 숨기거나 색상을 변경하는 대신, 실제로 애니메이션으로 만들 수 있습니다

광범위한 문서를보고 싶다면 여기에 설명서가 있습니다 그러나 나는 주요 것들을 다룰 것입니다 표시 및 숨기기 속성이 있습니다 ID 표시 / 숨기기는 실제로이 전체 상자에 해당합니다 그래서 내가 그것을 숨기면, 그것은 단지 사라질 것입니다

그리고 다시 돌아오고 싶다면 다시 보여줄 수 있습니다 그리고 돌아 왔습니다 그것은 실제로 사라지지 않았고, 나는 실제로 페이지에서 그것을 제거하지 않았다, 나는 단지 visibility의 CSS 속성을 hidden으로 설정했다 그래서 당신은 더 이상 그것을 볼 수 없습니다 또한 위로 미끄러 져 내려 앉습니다

이 효과를 얻을 수 있습니다 사라져서 사라지고 사라집니다 다시 내려올 수 있도록 아래로 밀어 넣을 수 있습니다 그리고 이제 돌아 왔습니다 이 페이드 효과가 있습니다

페이드 ID는이 상자와 일치합니다 페이드 아웃하면 천천히 사라집니다 나는 또한 그것을 퇴색시킬 수 있고, 그것은 다시 올 것이다 페이드 기능은 페이드 기능에만 해당됩니다 원하는 특정 불투명도로 페이드 할 수 있습니다

따라서 5로 천천히 희미 해지면 절반으로 보입니다 나는 1로 가고 다시 1로 완전히 되돌릴 수 있도록 1로 되돌릴 수 있습니다 그것은 당신이 할 수있는 또 하나의 애니메이션입니다

토글 효과도 있습니다 따라서이 상자에 해당하는 토글 ID를 선택하겠습니다 그 div에서 당신은 토글을 부를 수 있습니다; 눈에 보이면 보이지 않게됩니다 보이지 않으면 다시 볼 수 있습니다 그래서이 토글 함수를 두 번 호출했습니다

첫 번째 것은 숨기기와 같은 일, 두 번째 전화는 쇼와 같은 것이 었습니다 그리고 페이드 토글로 이것을 할 수도 있습니다 실제로는 사라지는 것을 제외하고는 똑같은 일을합니다 그리고 슬라이드 토글도 마찬가지입니다 체인 효과도 있습니다

요소를 선택하고 그 위에 여러 가지 애니메이션 메서드를 호출하면, 당신이 그것을 퇴색시키고 싶었던 경우에, 그 후에 아래로 미끄러지십시오, 숨긴 다음 페이드 인하면 연속적으로 수행됩니다 그래서 사라져서, 다시 돌아 왔습니다 – 웬일인지, 숨은 것이 일어나지 않았습니다 그것을 시도하자 그래, 그래서 그것은 사라져 버렸고, 그리고 그것은 미끄러졌다 그리고 더 많은 것이 있습니다

애니메이션 기능을 사용할 수 있습니다 매우 복잡한 자체 애니메이션을 만들려면, 그러나 그것은 당신에게 무한한 확장 성을 제공합니다 원하는 애니메이션을 만들 수 있습니다 대기열을 사용하여 한 번에 여러 애니메이션을 대기열에 넣을 수도 있습니다 그래서 당신이 뭔가를 페이지를 가로 질러 날아 가기를 원한다면, 오른쪽 상단에서 왼쪽 하단으로 슬라이드하면, 그렇게 할 수 있습니다

하나씩 다른 작업을 차례대로 진행하십시오 다음으로 우리가 이야기 할 것은 이벤트입니다 이벤트는 당신을 허용합니다 – 지금까지 우리는 콘솔에 물건을 타이핑했습니다 이것이 그 일이 일어나는 한 가지 방법입니다 그러나 실제 페이지에서, 당신은 할 수 없을 것입니다 사용자가 물건을 콘솔에 입력하게하십시오

자동으로 일이 이루어 지길 원합니다 이를 위해서는 특정 이벤트가 발생할 때 활성화되는 이벤트를 사용해야합니다 자세한 내용은 설명서를 참조하십시오 그래서 보자 상자를 숨기거나 표시하고 싶습니다

하지만이 버튼은 아직 구현하지 않았기 때문에 아무 것도하지 않습니다 나는 실제 HTML 페이지로 갈 것이다 슬라이드가 있습니다 슬라이드를위한 div가 있습니다 그것은 슬라이드의 클래스가 있습니다

텍스트가 있습니다 이제이 상자와 상자 단추가 있습니다 우리가 실제로 이것을 어떻게 사라지게할까요? 먼저 상자 ID를 사라지게하는 함수를 작성해 보겠습니다 이것은 funtion의 구문입니다 hideTheBox라고 부르 자고합니다

취할 인수가 없기 때문에 인수를 취하지 않습니다 상자 ID를 선택할 수 있습니다 그래서 jQuery select를 사용하여 상자 ID를 선택할 수 있습니다 그런 다음 사라지게하십시오 페이드 아웃하자

실제 콘솔에서이 기능을 실행하면, 이 함수를 정의 할 수 있습니다 hideTheBox를 호출 할 수 있습니다 그러나 버튼을 실제로 누르면 버튼이 발생하기를 원합니다 그렇게하려면 이벤트를 사용해야합니다 이벤트를 특정 단추 또는 일부 동작에 바인딩하려면, 이벤트가 트리거 할 요소를 선택해야합니다

또는 그 이벤트를 트리거합니다, 죄송합니다 먼저 상자 버튼 ID를 선택하겠습니다 이것이 바로 버튼이기 때문에, 지금은 그 버튼을 위해, 우리는 그것이 클릭되었을 때 애니메이션을 만들고 싶습니다 클릭 기능이 있습니다 다른 기능을 바인딩 할 수 있습니다

이 함수는 다른 함수를 인수로 사용합니다 우리는 hideTheBox 함수를 전달할 수 있습니다 이 버튼을 클릭 할 때마다 해당 기능이 자동으로 실행됩니다 우리가 이것을 저장하면 새로 고침을 할 수 있습니다 그리고 1 초, 미안해

이 문제를 정말로 빨리 해결하도록하겠습니다 괜찮아 우리는 거기에 갈 이제 버튼을 클릭하면 상자가 사라집니다 우리는 이것을 fadeToggle로 바꿀 수도 있습니다

상자를 숨기거나 표시하기 위해 변경하십시오 우리가 새로 고침하면 이것은 또한 효과가있을 것입니다 우리는 그것을 숨길 수 있고 그것을 보여줄 수도 있습니다 그리고 그것은 계속 작동 할 것입니다 우리가 할 수있는 또 다른 일은 실제로 hideTheBox 함수를 정의 할 필요가 없다는 것입니다

우리가 click 함수를 호출하기 전에 따라서 함수를 정의하고 hideTheBox를 호출하는 대신, 이 일이 클릭되면 우리는 단지 그것을 부를 것입니다 그래서 우리는 여기에 익명으로 정의 할 수 있습니다 이는 자바 스크립트가 가지고있는 기능입니다 함수를 정의 할 수 있습니다

일반적으로 함수 hideTheBox 그러나 인수 대신 함수에 인수가 없다고 말할 수 있습니다 중괄호를 시작하여 함수를 정의하고, 그 중괄호를 닫은 다음 여기에 함수를 정의하면됩니다 첫 번째 괄호와 마지막 괄호 안에 click 함수의 인수에 해당합니다 따라서이 함수를 전달하면이 코드 줄을 여기에 복사 할 수 있습니다 그것은 똑같은 일을 할 것입니다

그리고 이제 우리는이 임의의 fadeTheBox 함수가 없습니다 명백한 이유없이 주변에 앉아있다 이 함수는 익명으로 정의되었으며 이름이 없습니다 상자 단추를 클릭 할 때만 실행됩니다 그래서 다시 한 번 더 상쾌하게, 그리고 한 번 더, 당신은 그것이 여전히 작동 볼 수 있습니다

이것이 이벤트를 만드는 방법입니다 우리가 사용할 수있는 다양한 이벤트가 많이 있습니다 콘솔을 사용하여 어떻게 작동하는지 다시 보여 드리겠습니다 각각의 ID는 각 상자에 해당합니다 이 상자는 클릭 ID이고,이 ID는 키 ID이고이 ID는 마우스 ID입니다

한 가지 더 중요한 것은이 액션 함수가 있다는 것입니다 매번 그것을 타이핑하지 않고, 실제로 실제로이 기능을 정의했습니다 hideTheBox 함수와 같은 기능을합니다 이 상자를 가져 와서 페이드 아웃하거나 페이드 인합니다 이것이 우리가 여기서 사용할 수있는 이유입니다

따라서이 클릭 ID를 클릭하면 상자가 사라지거나 다시 나타납니다 마지막 슬라이드에서 사용한 버튼과 같은 것입니다 이제 우리가 이것을 호출하면 이것을 클릭하면 상자가 사라지고, 다시 클릭하면 상자가 다시 나타납니다 꽤 간단합니다 더블 클릭은 똑같은 일을합니다

단 두 번 클릭하면됩니다 다시 한 번 클릭하여 다시 클릭하면 아무 일도 일어나지 않을 것입니다 하지만 두 번 빨리 클릭하면 사라질 것입니다 다시 더블 클릭하면 다시 나타납니다 그래서 매우 간단합니다

키보드 입력은 다소 이상합니다 이 예제에서는 실제로 작동하지 않는다고 생각합니다 왜냐하면 키를 아래로, 키를 위로 및 키를 누르십시오 및 기타 주요 동작 그것을 묶는 요소에 상관없이 활성화하십시오 예를 들어, 몸에 키를 완전히 묶어 두거나, 아무리해도 여전히 활성화 될 것입니다 – 구체적이지 않습니다 나는 이것을 클릭하고 아무것도 보이지 않게하기 위해 열쇠를 누를 필요가 없다

그것은 현재 어떤 요소에 관계없이 활성화 될 것입니다 따라서이 예제에서는 실제로 작동하지 않습니다 키보드 입력 div에 입력을 입력하는 것으로 인식하지 않기 때문입니다 그러나 마우스 동작을 보면, 첫 번째는 마우스를 가져 가면 CSS를 사용하여이 중 일부를 수행 할 수 있습니다 CSS를 사용하는 경우, CSS를 작성하여 무언가 위에 마우스를 가져 가면, 스타일이 바뀝니다

하지만 jQuery를 사용하면 다른 것들의 스타일도 바꿀 수 있습니다 예를 들어이 div 위로 마우스를 이동하면 액션을 호출합니다 즉, 마우스를 올려 놓으면 상자가 사라집니다 우리가 그것에서 멀리 이동하면 상자가 다시 나타납니다 우리가 이것을 호출하고 그 위에 마우스를 가져 가면 상자가 사라지고, 우리가 떠나 자마자 돌아옵니다

마우스 ID에서이 호버 기능을 호출하면, 이 상자에 해당하면 상자 위로 마우스를 가져 가면 그 상자는 실제로 사라질 것입니다 – 지금은 펑키하고 있습니다 만, 우리가 그것에서 멀어지면 그것은 다시 나타납니다 지금은 어떤 이유로 거꾸로되어 있습니다 마우스 입력과 마우스 이동 기능은 다소 비슷하지만 약간 씩 다릅니다 마우스 입력은 예상대로 상자에 마우스가 들어가면 활성화됩니다 그래서 당신이 그것으로 들어가면, 그것은 사라질 것입니다

그러나 당신이 떠날 때 그것은 다시 나타나지 않을 것입니다 다시 돌아 오려면 다시 움직여야합니다 마우스 이동 기능이있어 활성화됩니다 마우스가 상자 안에있을 때마다 그래서 계속해서 페이드 인 / 페이드 아웃합니다

그리고 실제로 로깅 중입니다 그냥 페이드 인 / 아웃하는 것처럼 보입니다 하지만 실제로 이보다 더 많은 행동을 기록하고 있습니다 그래서 당신이 떠날 때 그것은 그것들의 수천처럼 기록되기 때문에 계속 될 것입니다 아마 천이 아니 겠지

5 시까 지 그것보다 더 기록합니다 요점은 모든 마우스 동작에 많은 것들이 있다는 것입니다 다른 것들은 읽을 수 있지만 모두 약간 다릅니다 너는 너가 필요로하는 것을 고를 수있어

당신이하려는 특정 목적을 위해 다음으로 이야기 할 것은 AJAX입니다 AJAX, 올해는 자바 스크립트를 많이 다루지 않았지만, 그래서 저는 AJAX에 대해서 잠깐 이야기 할 것입니다 AJAX는 비동기 JavaScript 및 XML의 약자입니다 기본적으로, 예를 들어, 페이스 북에있을 때 알림을 보내면, AJAX가 웹 브라우저에서 실행 중이기 때문입니다

웹 브라우저가 실제로 몇 초마다 페이스 북의 서버로 가서, 그들에게 물어 보아라 나를 위해 새로운 무엇이 있느냐? 그리고 나서 그것은 당신에게 돌아옵니다 이렇게하면 서버에 요청을 보낼 수 있습니다 실제로 페이지를로드하지 않아도됩니다 그래서 보통 PHP와 데이터베이스를 사용한다면, 서버에서 새 정보를 얻기 전에 페이지를 새로 고쳐야합니다

그러나 AJAX를 사용하면 새로운 정보를 지속적으로 얻을 수 있습니다 또는 버튼이나 그와 비슷한 것을 클릭 할 때 끌어 당깁니다 이렇게하면 페이지를 다시로드하지 않고도 요청을 보낼 수 있습니다 GET 또는 POST 요청을 사용할 수 있습니다 GET 요청은 예를 들어 Google

com에 방문한 경우입니다 그리고 q = test를해라 그것은 그들에게 질의 테스트를 제공합니다 이러한 매개 변수를 URL 자체에 전달하기 때문에 GET 요청입니다 POST 요청은 마치 게시물을 통해 전송하는 것과 같습니다

당신이 그것을 편지에 넣고 그것을 그들에게 보내주는 것과 같습니다, 그러나 그들은 내용을 실제로 보지 못합니다 URL에 표시되지 않습니다 직접 입력 할 수는 없습니다 거의 비밀리에 보내야합니다 그것은 게시물에 있습니다

하지만 jQuery를 사용하면 GET 및 POST 요청을 수행 할 수 있습니다 일반적으로 자바 스크립트를 사용하는 것보다 훨씬 쉽습니다 GET 요청을 사용하여 API를 쿼리하고 로그인 정보를 확인할 수도 있습니다 다음 페이지에서 나는 이것을 만들었다 "점심 먹으러 가자

" Harvard food API를 사용하여, 그렇게 풀어 봅시다 이것은 jQuery를 사용하여 API에 GET 요청을 수행하는 방법의 예일뿐입니다 정보를 다시 얻으십시오 그래서 우리는 오늘의 메뉴를보고 싶습니다 우리는 점심을 먹을 곳을보고 싶어합니다

다음은 jQuery에서 GET 요청을 작성하기위한 URL입니다 $ get 함수를 사용합니다 첫 번째 인수는 URL이므로 정확하게 쿼리하는 것입니다 다음 인수는 GET 요청이 완료 될 때 실행되는 함수입니다

따라서 서버에 요청을 보내면 다시 기다려야합니다 다시 돌아 오면 서버에서 돌아온 데이터로 몇 가지 조치를 취할 것입니다 코드를 작성해 보겠습니다 나는 이것을 의도적으로 코딩하지 않았다 TODO가 있습니다

우선, 이벤트 바인딩을 사용합시다 그래서이 버튼을 누르면 GET 요청을 보냅니다 그리고 GET 요청이 일부 데이터와 함께 반환되면, 우리는 이것을 식사 정보 ID div에 기록 할 것입니다 우선, 푸드 버튼 ID를 선택하십시오 클릭하면 뭔가 할 수 있기를 바랍니다

이전처럼 익명의 fuction으로 만들자 그 중괄호를 감쌀 수 있고, 이 버튼을 누르면 GET 요청을 보내려고합니다 점심 먹으러 가려고했는지 확인해 이를 위해 $ get을 입력하면됩니다

이것은 달러 기호를 사용하는 jQuery 함수입니다 그것은 몇 가지 논증을 필요로합니다 첫 번째 것은 URL이며, 두 번째는 콜백 함수이고, 호출 된 함수입니다 요청이 실제로 반환 될 때 URL을 먼저 작성해 보겠습니다 David가 쓴 API에서 가져올 수 있습니다

여기로 가면, 그것이 음식이라는 것을 알 수 있습니다 cs50net/api/13/menus, 그런 다음 원하는 매개 변수의 이름을 전달하기 만하면됩니다 따라서 매개 변수 1은 값 1입니다

표준 날짜, 시작 날짜, 오늘 기본값으로 표시됩니다 아무 것도 입력하지 않으면 종료 날짜도 기본값으로 설정됩니다 너가 아무 것도 입력하지 않으면 오늘에 그것이 우리가 원하는 것입니다 우리는 오늘 정보를 얻고 싶습니다

우리는 형식을 JSON으로하고 싶습니다 그것은 단지 임의적입니다 원하는 양식을 사용할 수 있습니다 CSV를 사용할 수 있지만 JSON은 JavaScript Object Notation입니다 JavaScript가 의미하는 바를 이해하는 것은 매우 쉽습니다

우리는 그렇게 쉽게 인쇄 할 수 있습니다 JSON에서 요청하고 점심을 요청 해 봅시다 그래서 식사 = 점심 해당 URL을 작성하기 만하면됩니다 메뉴가 있습니다

첫 번째 매개 변수는 출력 = JSON입니다 그것이 우리가 원하는 것이기 때문에 매개 변수를 '와'로 구분하십시오 두 번째 매개 변수는 – 기억이 안납니다 식사 그리고 우리는 식사 = 점심을 원해

이 URL을 브라우저에 입력하고 이동하여 테스트 할 수 있습니다 그것은 당신에게 약간의 결과를 줄 것이다 점심 먹을 것만으로도 충분합니다 이 추한 형식입니다 더 나은 형식으로 페이지에 인쇄하고 싶습니다

그래서 URL은 정확합니다 이제 함수를 작성해야합니다 요청이 성공하면 콜백합니다 이 함수는 실제로 인수를 취합니다 그것은 데이터가 될 것입니다

데이터는 GET 요청이 완료된 후 GET 요청으로부터 되돌아 오는 것입니다 우리는 중괄호를 할 수 있습니다 여기서 우리는 익명의 함수를 작성한다 정보를 다시 얻을 때 해당 데이터를 사용하여 실행됩니다 그래서 우리가이 URL을 타이핑했을 때, 이것이 데이터의 모습입니다

이 거대한 문자열이 될 것입니다 그러나 좋은 점은 JavaScript가 JSONparse 함수를 사용하여 구문 분석 할 수 있다는 것입니다 이제 구문 분석 데이터라는 새로운 변수를 만듭니다 파싱 ​​데이터는 객체의 배열입니다

각 객체에는 – 잘 보겠습니다 그것은 날짜, 식사, 카테고리, 요리법,이 모든 다른 것들을 가지고 있습니다 이제 각각의 이름을 인쇄 해 봅시다 우리가 그것으로부터 돌아 오는 모든 종류의 것들에 대해 반복 해 봅시다 그리고 각각을 인쇄하십시오 – 각각의 이름을 인쇄하십시오

이것은 for 루프입니다 자바 스크립트는 배열에 변수와 루프를 만들 수있는 유용한 문법을 ​​가지고 있습니다 var i는 단지 반복자이므로 var i = 0을 수행하는 대신, 나는 길이보다 작았 어 ++, 파싱 된 데이터에서 var i 만 할 수 있습니다 이 예에서 파싱 된 데이터 (i)는 현재 요소 배열의 실제 객체 그리고 우리는 그것에서 이름을 얻고 싶습니다

그럼 그냥 이름을 지으겠습니다 마지막으로 jQuery를 다시 사용하게됩니다 실제로 div에 추가합니다이 식사 정보 div는 현재 비어 있습니다 그래서 그것을 선택합시다

jQuery를 사용하여 식사 정보 div ID 또는 식사 정보 ID를 선택합니다 죄송합니다 우리는 이것을 덧붙이고 싶습니다 예를 들어, 우리가 테스트를했다면 매번 덮어 쓰게 될 것입니다 그래서 우리는 이것을 덧붙일 수 있습니다

배열의 현재 요소에서 이름을 가져옵니다 우리는 식사 정보 ID div의 끝에 추가 할 것입니다 그리고 그것을 더 깨끗하게 보이게하기 위해서, 줄 바꿈을 추가하여 한 줄에 모두 나타나지 않도록하십시오 그래서 모든 것이 잘된다면 그것은 좋을 것입니다 – 우선이 버튼을 클릭 할 때마다, 이 URL에 GET 요청을 보냅니다 데이터가 다시 돌아 오면 파싱됩니다

그것을 JSON으로 바꾸고, 그 데이터를 나타내는 전체 배열을 반복하고, 이름과 줄 바꿈을 추가하십시오 이전에 비어 있던 식사 정보 ID의 모든 행에 다시이 페이지로 돌아가서 새로 고침하겠습니다 클릭하고 알아보십시오 작동하지 않습니다 운이 없었어

그리고 이것이 디버깅이 시작되는 곳입니다 Indexhtml, line 1 그 흥미 롭군요 좋아, 이거하는 데 시간을 보내는 것보다, 그냥 갈거야

완성 된 버전 인 완성 된 파일을 가져 오십시오 나는 그 차이가 무엇인지 모르겠다 그러나 우리는 대신 이것을 열어 볼 수있다 그리고 우리는 AJAX에 가면 제대로 작동 할 것입니다 오늘 점심 도시락이었는데, 특별한 순서없이 주위에 따옴표가 붙어 있기 때문에 가장 좋지 않습니다

그러나 분명히, 최종 프로젝트를 위해이 작업을 수행했다면, 당신은 그것을 더 좋아 보이게 만들 것입니다 그러나 이것은 GET 요청을 수행하는 방법에 대한 간단한 예제 일뿐입니다 실제 코드를 보면 추측 할 수 있습니다 여전히 거의 동일합니다 오, 나는 그것을 문자열로 변환하는 것을 잊었다

바로 그 것이다 아니, 아직 작동하지 않습니다 그럼에도 불구하고 여기 실제 완성 된 코드가 있습니다 이것이 어떻게 생겼는지, 그리고 방금 구현 한 것과 같은 일을합니다 버튼을 클릭하면 GET JSON을 사용하여 데이터를 자동으로 구문 분석합니다

데이터를 다시 가져 와서 전체 배열을 반복합니다 오늘 점심 먹으러 뭐든간에, 그 이름, 각 줄 다음에 줄 바꿈을 추가합니다 GET 함수를 사용하는 방법입니다 당신은 또한 시간이 없었던 POST를 사용할 수 있습니다 그것을위한 예제를 작성하지만, 우리는 문서를 볼 수 있습니다

jquerypost를 보면, 거의 동일한 것임을 알 수 있습니다 매개 변수를 전달하는 대신 URL이 있습니다 그것들을 URL 자체의 문자열에 넣으면됩니다 이 데이터 변수를 전달해야합니다

기본적으로 매개 변수를 값에 매핑하는 사전입니다 그걸 전달하면 POST를 사용하여 전송합니다 그리고 일단 그렇게하면, 성공 함수를 가질 수 있습니다 데이터가 다시 돌아올 때 실행되는 그렇지 않으면 정확히 동일합니다 그래서 POST를 사용하면, 예를 들어, 입력 양식이있는 경우 POST를 사용할 수 있습니다

당신은 사람들이 그것들에 암호를 입력하게하고, 그 암호를 끕니다 백엔드 스크립트에 해당 사용자가 유효한지 여부를 데이터베이스에 체크 인합니다 페이지를 새로 고치지 않고 jQuery를 사용하여 모든 작업을 수행 할 수 있습니다 그것이 내가 전에 보여준 블로그에서 구현 한 방법입니다 우리가 최종 포털로 가서 로그 아웃하면 로그 아웃하고, 로그 아웃이 작동하지 않습니다

새 창에서 열어 보겠습니다 여기에 암호가 있습니다 무작위로 입력 할 것입니다 작동하지 않지만 우리가하지 않았 음을 알 수 있습니다 실제로 페이지를 새로 고침해야합니다

코드를보고 싶다면, 모두 여기에 있습니다 그래서 제가 작년에 쓴 코드가 언젠가는 여기에서 볼 수 있듯이 POST 요청을 보내고 있습니다 백 엔드에 loginphp라는 파일이 있는데, 암호가 유효한지 검사합니다

패스하는 매개 변수는 다음에 매핑 된 비밀번호입니다 현재이 입력 상자에있는 입력입니다 데이터가 돌아 오면 확인합니다 데이터가 거짓이면 암호가 틀리다고 말하고 슬라이드 다운합니다 그 후에 그것을 사라지게하십시오

그렇지 않으면 관리자 페이지를로드합니다 그리고 이것은 모두 JSON을 사용하여 완료되었습니다 이 많은 코드 라인에서 데이터를 백 엔드에 전달할 수 있습니다 그것이 올바른지 여부, 올바르게 로그인했는지 여부, 그 사람에게 실제로 응답하여 그 사람을 올바른 페이지로 리디렉션합니다 또는 로그인하지 못하게하고 잘못된 비밀번호가 있다고 알려줍니다

이것이 jQuery POST를 사용하는 방법의 예입니다 백 엔드에 POST 요청을 보내려면 누군가가 올바르게 로그인했는지 확인합니다 좋습니다, 그래서 제가 가지고있는 모든 예와 내가 다루고 싶은 모든 것들입니다 그것들은 jQuery가 여러분에게 할 수있는 주요한 것들입니다 : 요소를 선택하고, DOM 조작을 사용하여 요소를 수정하고, 효과를 추가하거나, 특정 이벤트에 대해 사물을 활성화하거나, 또한 AJAX 요청을 매우 원활하고 쉽게 처리 할 수 ​​있습니다 와 주셔서 감사합니다

궁금한 점이 있으면 알려주세요 네? [Student] 위로 돌아 왔을 때 POST 요청 후 JSON을 따옴표로 묶었습니다 그게 무슨 일인지 궁금 해서요 >> 그래, 알 겠어 질문은, 방금 설명한 예에서, JSON이라는 단어가 주위에 따옴표 안에 있습니다

POST 함수를 중심으로 다시 올려 보겠습니다 나는 그걸 보여 주기만하고있다 여기에 POST 요청이 있습니다이 JSON이 따옴표로 묶여 있습니다 그것은 단지 우리가 산출물을 기대하는 것을 정의합니다

따라서 예상되는 데이터 유형으로 JSON을 전달할 경우, 요구 사항은 아니지만 우리가 그것을 통과한다면, 데이터는 자동으로 JSON으로 구문 분석됩니다 따라서 JSON 구문 분석 함수를 호출 할 필요가 없습니다 그것은 자동적으로 일어날 것입니다 POST에 대한 설명서를 살펴보면, 이 데이터 유형 변수는 서버에서 예상되는 데이터 유형입니다 지능적인 추측은 잘못 될 수 있습니다

그래서 당신은 그것을 공백으로 남겨 둘 수 있습니다, 그러나 이것은 단지 데이터 유형입니다 JSON, XML 또는 다른 어떤 것이 든간에, 사용중인 코딩에서 다른 질문? 괜찮아 다른 질문이 있으시면 언제든지 이메일을 보내주십시오 vshekhawat@collegeharvard

edu에서, 그리고 슬라이드와 코드는 온라인에서 곧 사용할 수 있어야합니다 최종 프로젝트에 대해 행운을 빈다 jQuery를 사용하기를 희망한다 [CS50TV]

Why ASP.Net is Better than PHP

ASPNet이 PHP보다 나은 이유를 알고 있습니까? 어떤 이들은 ASP

net이 Microsoft보다 더 뛰어나다 고 생각합니다 당신 Windows 서버 및 Windows OS에서 작동하는지 확인하십시오 밖에있는 많은 Unix 서버와 iOS 장치가 있습니다 PHP는 컴포넌트에서부터 WordPress 템플릿, 코드 모듈에 이르기까지 온라인 자원이 풍부합니다 그만큼 단점은 Microsoft 시행과 같이 엄격한 규칙이 없기 때문에 와일드 웨스트처럼

예, 무료입니다 그래, 나는 PHP가 무료라는 것을 알고있다 그러나 문제에 접근 할 수있는 다양한 방법으로 상황에 맞는 솔루션을 만들기 위해 모든 문제를 해결하는 데 어려움이 있습니다 PHP는 여러분에게 더 많은 창의성을 부여합니다 표준 플러그 앤 플레이 솔루션을 사용하는 대신 바퀴를 다시 발명 할 위험이 있습니다

또는 다른 사람들이 작성한 별도의 구성 요소를 함께 사용하여 작업하는 데 많은 시간을 소비하며, ASPnet 모듈은 일반적으로 모두 잘 작동합니다 이것이 Microsoft가 성공한 유일한 방법 일 것입니다 ASPnet 사이트와 환경을 결합하면 거의 클릭하고 클릭 할 수 있습니다

셰어 포인트 워크 플로 문서 관리 시스템과 Citrix 환경을 구축하여 클라우드 기반 서비스 제공 응용 프로그램을 다소 쉽습니다 이것이 바로 Sharepoint 개발자가 PHP 개발자보다 적게 만드는 이유입니다 그들은 단지 코드입니다 원숭이 적어도 ASP

net 개발자가 만든 프로젝트는 보통 다른 모듈과 함께 작업하고 다음 ASPnet의 반복 코드 모듈의 품질은 컴파일러에 의해 강화됩니다 프로그래머들이 코드를 말함으로써 시간 낭비를 변명하는 방법에 대한 농담이 있습니다 컴파일 중입니다

나는 그들이 의자에서 싸우고있는 것을 보았다 하지만 실생활에서 편집은 코드 모듈을 연결하기 전에 오류를 생성하고 문제점을 드러내십시오 컴파일러는 맞춤법 검사의 한 형태라고 생각합니다 같은 방식으로 dot-net은 코드 모듈이 필요로하는 모든 것을 강제하는 프레임 워크 역할을합니다 다른 모듈과 함께 작동해야합니다

이는 전반적인 프로젝트의 품질을 향상시킵니다 나머지 Microsoft 제품 만 수행 한 경우

Microservice Architecture with ASP.NET Core

오늘의 에피소드에서 우리는 체사레와 함께 우리는 aspnet을 사용하여 마이크로 서비스 아키텍처에 대해 이야기 할 것입니다

코어 당신은 확실히 그것을 확인하고 싶습니다 오늘 우리가 이야기 할 예정인 그물 쇼의 다른 에피소드에 오신 것을 환영합니다 Cesare della Torre와 마이크로 서비스 및 건축 패턴이 그렇습니다 당신은 어떻게 빨리 너 자신을 소개하고 그 후에 화제로 얻을 것인가? 그래서 저는 다트머스 팀에서 오후로 일하고 있습니다 그리고 내 초점은 대부분입니다

개 넷 응용 아키텍처 지침 참조 응용 프로그램 및 전자 책 기술 전자 책과 그 응용 프로그램 및 또한 이런 종류의 이벤트에서 네, 우리는 바로 우리가 팀원이라고 생각합니다 6 년 또는 7 년 동안 또는 그와 비슷한 것을 위해 함께 일했습니다 여기 마이크로 소프트 예 마이크로 소프트에서 11 년 괜찮아요하지만 대담한 날이 오면 6 년은 될거예요 거의 정확히 그래요

예, 그렇다면 지금 당신이 가지고있는 사이트에 대해 어떻게 말해야합니까? 이게 네 친구들을위한 일종의 홈페이지라고 생각해 맞아 꽤 많은 시간 동안 이것들을 작업하고 있습니다 마이크로 서비스 만이 아닙니다 그래서 우리는 볼 수 있듯이 about

net 애플리케이션 아키텍처를 제쳐두고 만들었습니다 여기에 Windows 용 모바일 응용 프로그램에 대한 여러 영역이 있습니다 일반 웹 응용 프로그램하지만 aspnet 코어 현대와 구름 확실히 어떻게 Windows 컨테이너를 사용하여 기존 앱을 현대화하려면이 영역이 필요합니다 오늘날 마이크로 서비스 아키텍처 및 어두운 컨테이너 그래서 만약 당신이 microsoft

net 측면에 가면 당신은 당신 여기서 얻을 건축 링크를 클릭하십시오 우리는 마이크로에 관해 매우 광범위한 책을 가지고 있으므로 이야기 할 것입니다 서비스를 쓴 다음 참조 애플리케이션 비디오 등 그래서 예를 들어 전자 서적은 무료로 다운로드 할 수 있습니다 약 300 페이지와 같은 마이크로 서비스에 대한 첫 번째 섹션은 아키텍처 패턴과 그래서 당신은 정말로 처음 70 페이지를 좋아할 수 있습니다 그게 무엇인지에 대해 알아두면 나머지 책은 dotnet core로 구현하기 때문에 얼마나 깊게 가고 싶은가에 달려 있습니다

멋진 점은이 콘텐츠와 관련이 없다는 것입니다 우리가 github에서 가지고있는 참조 응용 프로그램을 컨테이너 그것은 우리가 단지 아주 잘 알려진 것처럼 찾기를 원했기 때문에 상점입니다 도메인 개발자는 우리가 참조를 만들려고하지 않습니다 전자 상거래 이것은 마이크로 서비스와 도커 컨테이너를 막 배울 것이지만 당신은 우리가 2004 년처럼 거의 성공했음을 볼 수 있습니다 6000 개의 별을보고 많은 사람들이 그것을 볼 수 있습니다

그런 다음 여기에서 볼 수 있습니다 실행할 수있는 컨테이너를 사용하려는 경우이 두 가지 수준으로 실행하십시오 랩톱의 모든 것을 스튜디오 나 CLI와 함께 여기에서 Windows 용 도커 및 모든 컨테이너를 실행하는 모든 것입니다 내가 쓰는 것처럼 배포하고 여기에 비즈니스 스튜디오에 있고 지금 모든 용기는 PS처럼 모든 마이크로 서비스를 볼 수 있습니다 로컬에서 실행되는 컨테이너 및 인프라조차도 배포되고 있습니다

자동으로 속편 컨테이너를 배치합니다 Redis 컨테이너 rabbitmq는 10 개 모두에 대해 MongoDB의 모든 것을 로컬로 실행합니다 Visual Studio에서 5시에 맞추기 만하면 모든 것이 가능해집니다 다운로드 된 모든 이미지를 다운로드하면 모든 것이 실행됩니다 첫 번째 단계이지만 앞으로 나아갈 수 있습니다

프로덕션 환경을 사용하면 예를 들어 sequel container 당신은 sequel database cynosure로 이동할 것입니다 또는 MongoDB 컨테이너 대신 이동하십시오 EB Christmas DB는 잘 문서화하지 않았습니다 이제는 토끼 대신에 Q와 메시징 용으로 Q를 사용합니다 오른쪽에 캐시 등등 그래서 우리는 그 모든 장소에서 모든 코드가 준비되어 있습니다 자녀를 격리시키고 대신에 배치해야합니다

확장 가능한 Orchestrator에서 배포 할 정기 고정 컨테이너 kubernetes가있는 KS 또는 서비스 패브릭도 마찬가지입니다 요약하면 여기에 3 개의 클라이언트가있는 아키텍처를 볼 수 있습니다 클라이언트 애플 리케이션 우리는 요약 낮잠 일반 MVC 응용 각도 단일 페이지 응용 프로그램 및 다중 마이크로 서비스 모두 자치 자신의 데이터 IPA 게이트웨이와 독립적으로 작동합니다 내 컴퓨터에서이 응용 프로그램 종류를 익숙하게 만들면 잠재적으로 어떤 변화는 변화를 의미하는 의미를 갖게합니다 일단 내가 거기에 도착하면 건축물의 여러 종류로 당신은 내가 듣고있는 청색 구독이 이미 있음을 알고 있습니다

Azure와 그 다음으로 나아가는 것은 비교적 간단합니다 실제로 당신이 어느 시점에서 나는 자기 자신을 엉망으로 만들 것이라고 알고 있습니다 인증서가 어딘가에 있고 실제 응용 프로그램처럼 보이기를 원합니다 그래, 먼저 네가 알기를 확신하지 않아도되는 구름 문해력을 확실히 시험해 볼 수는 있지만, 어셔로 가서 되돌릴 수 있습니다 꽤 간단히 말해서 위키에서 우리가 여기 작성하는 코드가 아닙니다

비주얼 스튜디오 또는 안나와 함께 설정하는 방법에 대한 절차를 알고 있어야합니다 mac 및 CLI 또는 IKS 또는 서비스 패브릭에이를 배포하는 방법 단계별로 수행해야하는 세부 작업은 많은 콘텐츠처럼 보입니다 지금 당신이 어떤 종류의 고객인지 당신이 어떤 종류의 고객인지 말해 줄 수 있습니까? 당신이 이야기합니까 – 당신이 우리의 콘텐츠를 사용하는 것이 거기에 어떤 종류의 클러스터링 예, 그것은 어떤 산업이 될 수 있다는 것을 의미하지만 microservices는 Silver Bullet이 아니므로 모든 종류의 어떤 유형의 고객보다 더 많은 응용 프로그램을 제공 할 수 있습니다 기업 고객은 Isley가 될 수도 있지만 무엇보다도 우리가 이야기하고있는 것입니다 대규모 애플리케이션과 장기적으로 진화 할 필요가 있으며 잠재적으로 또는 아마도 마이크로 서비스 당 하나의 영역과 같은 각 영역에서 진화하고 싶을 것입니다

독립적으로 이제이 분야의 한 개발 팀이 있습니다 이 팀의 개발 팀은 그 지역을 독립적으로 배포하는 것이 아니라 배포하는 마이크로 서버를 배포하기 때문에 자율적으로 작업하십시오 귀하의 데이터베이스와 관련된 그것으로 영향을 미치지 않아야만큼 당신이 모 놀리 식 응용 프로그램을 사용하십시오 당신이 알고있는 모델의 이런 종류의 테스트는 당신이 공정하게 알 수 있습니까? 이러한 시스템의 각 하나에 대해 집중적 인 단위 테스트를하고 그것을 좋다고 부릅니다 테스트 전략은 무엇을 좋아하니 기본적으로 3 가지 종류가 있습니다

테스트 수준은 마이크로 서비스 당 단위 테스트가 될 것입니다 그렇다면 우리는 통합 테스트를 통해 데이터와 모든 것들을 고려할 것입니다 그게 당신의 코드가 아니며 마침내 우리가 기능 테스트라고 부르는 것입니다 그 모든 시스템을 고려할 것입니다 API 게이트웨이를 통해 들어오는 UI의 주문 및 다음 하나 또는 두 개의 마이크로 서비스가 전체 실행이 기능 테스트 및 그 때문에 전체 응용 프로그램이 있어야합니다

도커 고정 장치 호스트 또는 Indi Orchestrator에서 미안해 마지막 부분에서 응용 프로그램이 필요 하다니 무슨 뜻이야? 도커 호스트 또는 의사 Orchestrator 또는 kubernetes 오, 나는 그것이 단지 달리기와 같지 않기 때문에 나는 예를 본다 코드를 사용하여 단위 테스트를 수행하려면 실제 마이크로 서비스 또는 컨테이너가 필요합니다 어딘가에서 작동하고 있어야합니다 그런 다음 통합 테스트를 일찍 테스트 해보십시오

네 말이 맞아요 그리고 당신은 이것을 말하지 않았지만, 정확히 말해서 제가 정확히 무엇을 말합니까? 기술 여기에 사용 된 당신은 aspnet 코어의 무리를 알고 당신이 사용하는 가정 여기 그리고 거기에 그리고 일부 xamarin mm – 흠 당신은 그걸 조금이라도 잘 말할 수 있습니까? 클라이언트 측에서는 모바일 애플리케이션이 여름에 양식이므로 Android 및 iOS에서 실행 한 다음 웹 응용 프로그램에서 단일 페이지에서 실행 응용 프로그램은 각도가 있지만 서버 측에서 그것은 NBC이고 정기적 인 또는 전통적인 어플리케이션을위한 것과 동일한 것입니다 MVC하지만 여기에있는 코드는 모두 dotnet 코어이므로 모든 플랫폼에서 유용합니다 우리가 리눅스 도커 호스트에 배포 할 기본 설정은 다음과 같습니다

Windows 도커 호스트 및 일반적으로 우리는 kubernetes도 배포 내부 리눅스 권리 그리고 마이크로 서비스에 대한 모든 마이크로 서비스 aspnet 코어 웹 API를 누른 다음 API를 게이트웨이 그것은 op 기반의 api 게이트웨이 용으로 특별히 제작 된 오픈 소스 프로젝트 인 ocelot 하지만 너는 하루 종일 너는 누가 (nougat) 패키지를 가지고 있고 그 다음에 너는 호스트한다 그 웹 호스트 aspnet 핵심뿐만 아니라 지금 우리에게 무엇인지 생각 나게하기 위해 대부분의 사람들은 API 기반의 마이크로 서비스가 무엇인지 이해할 것이라고 생각합니다 내가 생각하기 때문에 게이트웨이가 제공하는 추가 가치는 무엇인가? 응용 프로그램은 실제로 만지지 않는 게이트웨이를 만지고 있습니다

서비스 자체가 맞아 그래,이 경우에 대해 생각해 보라 작은 매체 마이크로 서비스 기반 응용 프로그램의 일종이며 우리는 하나처럼 마이크로 서비스 유형처럼 2 3 4 7 8 9 10 마이크로 서비스가있는 경우 마이크로 서비스에 직접 액세스해야하는 경우 클라이언트 응용 프로그램에서부터 클라이언트의 모든 URL이 필요하지만 보안과 관련한 URL 수만은 아닙니다 그래서 당신은 API 만 표면화하기를 원합니다 클라이언트 응용 프로그램은 나머지는 잠재적으로 내부의 마이크로 서비스가 상당히 많을 수 있습니다 API는 외부에서 직접 호출하면 안되기 때문에 기본적으로 API 게이트웨이는 마이크로 서비스 용 샷의 프론트 엔드와 같습니다

예를 들어 무엇에 의해 소비 될 프론트 엔드 서비스가 단순화 되는가? 클라이언트 애플 리케이션 아니 죄송 예 그리고 내가 말하고 싶은 다른 그 하나입니다 그런데지도에서 강조하고있는 것은 사실입니다 단일 API 게이트웨이를 사용하는 것이 좋지 않을 수 있습니다 그 이유는 당신이있는 것처럼 마이크로 서비스의 자율성을 깨뜨릴 수 있습니다 자율적으로 이러한 마이크로 서비스를 배포하지만 그럴 때마다 모 놀리 식 API로 무언가를 변경하기 위해 바꿀 필요가있는 무언가 그런 다음 API 게이트웨이의 종류가 바로 모 놀리 식 문제가되고 있습니다 그렇기 때문에 좋은 패턴은 여러 개의 API 게이트웨이를 가질 수있는 이유입니다

더 크거나 더 작은 하나의 피벗은 여기에서 볼 수 있습니다 BFF가 프런트 엔드 예를 위해 당신이 만들 수 있습니다 또는 당신을위한 특별한 API를 만들 수 있습니다 모바일 앱은 여기에서 볼 수 있듯이이 두 가지 앱은 특별히 모바일 응용 프로그램과이 두 응용 프로그램은 웹 응용 프로그램 용으로 특별히 제작되었습니다 모바일 AP 모바일과 통화 할 때 다른 API가 필요할 수 있습니다 응용 프로그램 또는 웹 응용 프로그램 맞아, 그럼 같은 일이 될 수 비즈니스 또는 도메인 영역과 같은 영역이므로 쇼핑 지역 또는 이 경우 마케팅 영역은 작은 샘플이기 때문에 우리는 단지 두 개를 가지고 있습니다 도메인이나 영역을 가지고 있지만 지금 당장 더 많은 상황을 상상할 수 있습니다

이 정문을 세운 곳에는이 게이트웨이들이 있고 이것은 아마 집계의 종류에 원하는 사이에 긴장이 있다고 가정합니다 그것이 좋은 것일 수있는 것처럼 보이는 기능 그러나 어쩌면 또한 어쩌면 게이트웨이는 뚱뚱한 사람에게 약간의 도움을 줄 수 있고 거의 서비스가 될 수 있습니다 그 자체가 당신에게 말할 수 있습니까? 예, 좋은 지적입니다 다이어그램이 단순화되어 있으며 API 게이트웨이의 종류 만 볼 수 있습니다 하루가 끝날 때 API 게이트웨이는 리버스 프록시와 같습니다

URL을 입력 한 다음 다른 내부 경로로 리디렉션하거나 라우팅합니다 하지만 그곳에는 캐시를 가질 수있는 또 다른 장점이 있습니다 또는 인증 API 게이트웨이에서 꽤 많은 것들이 있지만 가장 중요한 일은 리버스 프록시이지만 다른 것은 집합입니다 어디로 향하고 그래서 집계 그래서 덜 넣어 당신이 논리 또는 이들에 대해 그들이 지불하는 물건의 종류는 게이트웨이보다 가볍기 때문에 가능하지만 때로는 예를 들어 여기에 집계를하는 ​​것이 중요합니다 특히 모바일 응용 프로그램 또는 단일 페이지 볼 수있는 MVC 어플리케이션이라면 원격 어플리케이션입니다

여기서는 같은 Orchestrator의 동일한 클러스터 내에서 실행됩니다 대기 시간은 2 ~ 3 회의 최대 호출과 같이 몇 번 호출하면 더 작아집니다 괜찮아요하지만 서버 측과 얘기하고 있다면 모바일 앱 또는 단일 페이지 애플리케이션의 브라우저에서 당신은 하나의 화면이나 페이지를로드하고 있으며 당신은 3 ~ 4 개와 대화해야합니다 서로 다른 마이크로 서비스는 3 ~ 4 개의 HTTP 요청을 의미합니다

매우 잘 최적이되지 않을 것이며 또한 많은 경우에 그들이 상상할 것입니다 당신이 실제로이기 때문에 평행을 이룰 수는 없습니다 예, 한 통화의 출력을 사용하여 다른 통화를 만들어야합니다 순차적 인 것이므로 다른 다이어그램이 조금 더 보입니다 내가 여기에 당신이 알고있는 갑판을 잘 알고있다

나는 잘 모르겠다 지금 여기에 있으니 어쩌면 여기서 볼 수 있습니다 여기 있습니다하지만 어쨌든 우리가 가지고있는 것은 마치 우리가 여기 몇 가지 마이크로 서비스와 이야기해야하기 때문에 쇼핑 지역 애그리 게이터 컨테이너 또는 API를 사용하여 예를 들어 모바일 응용 프로그램은 2 ~ 3 마이크로 서비스를 제공하고 응답하므로 단 한번만 응답하므로 최적화되지 않습니다 그래서 수다스러운 느낌이 들기 때문에 사람들이 정말로 좋아하는 것처럼 들립니다

관심이있는 사람들은 웹 사이트를 방문하여 책을 읽을 수 있습니다 아마 정말로 쌓기를 원하는 사람의 유형에 좋을 것입니다 이 전체적인 공간이 어떻게 생겼는지에 대한 정신적 모델을 만들 수 있습니다 어떤 수준의 권위와 맥락으로 그것에 대해 이야기하고 나서 우리는 또한 진짜로 파고 들기를 원하는 사람들을위한 github repos가 있습니다 비주얼 스튜디오를 통해 경험 해보세요

심지어 어딘가에 배치하면 어떻게 될지 추측 할 수 있습니다 좋은 사람을위한 조언 내가 좋아해 왔어 아키텍처 또는이 샘플을 채택하는 것에 대해 그들 대부분은 네가 입양 방법에 관한 두 가지 이야기를 나눌 수있다 모든 샘플 또는 심지어 마이크로 서비스 아키텍처 및 기타 우리가 아마도 약간의 패턴이나 반대 패턴에 대해 이야기 할 수있는 것 마이크로 서비스 괜찮아 내가 얘기하고 싶은 다른 것 그래서 어떻게에 첫 번째 이 접근 방식을 채택하기 위해 우리는 당신이 알기 시작하지 않기를 정말로 권합니다 처음부터 모든 일을 제대로하려고 노력하고 당신이 입는 곳도 모 놀리 식 인 무언가로 시작하는 것이 낫다

당신이 알고있는 논리와 사업 영역, 그리고 당신은 나누기 시작합니다 그 작은 조각으로하지만 그것에 대해 생각하고 이것은 가장 각 마이크로 서비스가 소유해야하는 마이크로 서비스에 대한 중요한 사항 자체 데이터가 너무 작아서 마이크로 서비스에서 가장 도전적인 것 중 하나입니다 하나의 데이터베이스 또는 두 개의 데이터베이스 만 있으면 안됩니다 그 다음에는 여러 가지 서비스 때문에 프로세스 대신 데이터 및 우물 당신은 여러 프로세스가 있지만 그게 내 서비스가 의미하는 바가 아니야 네가 좋아하는 것과 같은 검증을하는거야 변경 사항과 데이터 측면을 배포하면 위험 수준이 상당히 높아집니다

세 가지를 통해 사용되는 경우 사실이 아닐 수도 있습니다 왜냐하면 거의 데이터베이스에 영향을 미치기 때문입니다 입양에 관해서는 잘 모 놀리 식과 무언가로 시작할 수 있습니다 분할을 시작하거나 새로운 기능을 마이크로 서비스로 추가하기 시작합니다 새로운 서비스가있는 마이크로 서비스는 여기에서 볼 수있는 것처럼 자체 데이터를 소유하고 있습니다

다이어그램에서 마이크로 서비스 당 작은 데이터베이스 문제는 API 게이트웨이 패턴을 사용하면 이점입니다 클라이언트의 관점에서 당신은 당신이 무엇을 가지고 있는지 알 수 없을 것이기 때문에 내부에 100 마이크로 서비스 나 모 놀리 식 웹 API가 있다면 몇 가지 다른 작은 마이크로 서비스를 조금씩 더 발전시켜 나갈 수 있습니다 다른 마이크로 서비스가 아니라 클라이언트 측에서 모 놀리 식 API를 분리합니다 당신은 그것을 잘 알아 차리지 못할 것입니다 당신은 리팩토링을하고 있습니다

넷플 릭스가 내놓은 블로그 게시물을 읽었습니다 저는 4 대처럼 말하고 싶습니다 몇 년 전이나 그와 비슷한 것이고 나는 그것이 내가 처음에 보았던 곳이라고 생각한다 임기가 끝나고 그들이 생각한 접근법이 추론하는 것이라고 생각합니다 그것으로부터 그 게이트웨이를 먼저 구축하라

클라이언트를 위에 올려 놓는다 그 게이트웨이 옙 그리고 나서 당신은 당신이 필요로하는 분리를 가지고 있습니다 그러면 고객과 다시 이야기 할 필요가 없습니다 건축처럼 당신은 새로운 마이크로 서비스를 고객과 그 다음에 그걸 가지고 놀 수 있어요 그건 다른 것 중 하나입니다

나에게 중요한 것은 각 마이크로 서비스가 데이터를 소유해야하는 것처럼 가장 중요합니다 좋아, 그건 한가지지만 다른 것은 그리고 이것은 일종의 많은 개발자 나 회사에서 본 금융 패턴이 마치 객체처럼 마이크로 서비스를 사용하기 시작하고 시작합니다

어떤 종류의 대화를 나누거나 하나의 마이크로 서비스로 요청을하면 다른 사람 한테 이야기하고 또 다른 한 종류는 긴 사슬 예 HTTP와 그것은 처음에는 작동 할 것이기 때문에 정말 나빴습니다하지만 네가 만든 건물이 모 놀리 식 건물 같은 것 같아 분산 된 모 놀리 식 권리와 문제는 여기에 있습니다 하나의 마이크로 서비스 나 스타에 문제가있어 속도가 느려질 것입니다

그것은 천천히 아래로 지수에 영향을 미칠거야 그래, 그래, 스파게티 단지 더미 그래서 예, 여기 예쁜 슬라이드가 하나 있습니다 그리고 이것이 왜 또한 슬라이드입니다 너에게 중요하거나 너는 이것을 가지고 있니? 그래서 이것은 Klein 앱이 이야기하고있는 것처럼해서는 안되는 일입니다 API 게이트 웨이에서 바구니 제조사 서비스에 이르기까지 서로 하나씩 응답 한 다음 마이크로 서비스가 실패하는 경우 그런 다음 천천히 가면서 수천 개의 HTTP 요청을 생각해보십시오 때로는 재시도를 사용하는 경우에도 매우 나쁠 것입니다

네트워크 및 이러한 마이크로 서비스에 대한 아주 작은 문제가 있습니다 문제가 발생하면 모든 마이크가 무료로 시작됩니다 노력하고 나서 스스로에게 서비스 거부와 같은 비용을 지불 할 수 있습니다 너 자신도 그러하니 중요한 것은 정말로 격리 시키거나 식별하는 것이다 자율적 인 경계가 있으므로 각 마이크로 서비스는 순전히 독립적이어야합니다

다른 마이크로 서비스에서 가져온 것입니다 같은 종류의 동일한 엔티티를 여러 개의 서비스 데이터처럼 가지고 있으므로 도전의 권리는 내가 많은 일로 찾은 것들 중 하나를 의미한다 우리가 할 일이 여기에 적용됩니다 당신은 모델링에 많은 시간을 소비해야하고 일련의 마음에 드는 특성으로 당신이 만든 소프트웨어와 당신의 모델이 그런 종류의 것을 설명해야합니다 그 모든 것들은 모델에 대해 생각하고 큰 것을 나누는 방법입니다

모델을 여러 모델로 묶는 것은 아마도 경계와 같은 가장 중요한 것입니다 컨텍스트는 도메인에서 사용하는 이름이며, 디자인은 꽤 비슷한 예 그리고 어쩌면 하나의 엔티티가 동일한 엔티티 일 수도 있습니다 카탈로그에있을 수있는 여러 조각으로 나뉘어져 있습니다 나는 모든 것을 가지고 있습니다 제품의 엔티티에 대한 속성은 있지만 바구니에있을 수도 있습니다

ID와 어쩌면 가격이 필요하지만 나머지는 그렇지 않아요 그렇다면 보시다시피 여기 Col는 내가 클라이언트와 HTTP로 이야기 할 때 그것은 단지 내부 수준에서 어떤 일이 발생하면 servus 당신은 이벤트를 보내고 당신은 다른 마이크로 이벤트 버스 나 서비스 박스 또는 RabbitMQ를 통한 서비스 그 작은 모델들 사이에 결과 일관성을 갖자 예 또 다른 중요한 단어 그게 가장 중요한 것입니다

아마도 내가 제품에 대한 카탈로그의 가격 나는 그것에 대해 걱정하고 싶습니다 바구니하지만 가격은 바구니에 보관하고 새 가격은 이벤트가 동 기적으로 제공되므로 마침내 얻을 수있는 것은 클라이언트 당신은 단지 모든 데이터의 전파 및 최종 일관성은 당신이 단지 하나의 마이크로 서비스와 이야기 할 필요가있는 씨족에서 이루어집니다 어쩌면 다시 일어날 수도 있지만 AP API 나 거부와 같습니다 게이트웨이는 가능한 한 마이크로의 단일 레벨로 이야기해야합니다 긴 HTTP 요청이 아닌 서비스를 제공합니다

마무리는 클라이언트의 첫 번째 개발과 거의 비슷합니다 귀하의 아키텍처가 귀하의 최상의 경험을 지향하고 있음을 의미합니다 첫 번째 다이어그램은 백엔드와 거의 같습니다 그것은 백엔드에 적합하지만 백엔드의 첫 번째 접근 방식은 최종 일관성의 반대가 무엇이든 일관성에 초점을 맞 춥니 다 그것은 일종의 백엔드를위한 가장 쉬운 방법이지만 클라이언트는 제 2 다이어그램에서 백엔드는 이런 종류의 다른 것을 사용해야합니다

데이터가 흐르고 다양한 방법으로 올바른 기법을 얻을 수있는 기법 여기서 우리가 다시 아키텍처로 돌아 오면 우리는 이벤트 버스는 로버트와 Q 또는 서비스 버스 위에 실행하는 것만으로 우리는 당신의 백플레인으로 구성된이 이벤트에 대해서는 괜찮습니다 당신이 종결에 대해서 말하고 싶은 다른 무엇이라도있다 아, 그냥 로컬에서 실행하지 않고 다음과 같이 배포 할 수 있습니다 여기는 usher에서 볼 수 있습니다 KS입니다

그리고 이것을 쿠퍼에 배치 할 수 있습니다 누드 nashor 그리고 여기도 알 수 있습니다 맞아하지만 누군가가 가서 이걸 보면서 그들은 꽤 세부적인 질문을합니다 그들은 이것들을 묻습니다

그런 종류의 희망이나 희망을 가지고 확신합니다 그렇습니다 좋은 질문이므로 먼저 시도 할 때 어떤 문제가 있으면 먼저 여기에 갈 수있는 예제 또는 참조 응용 프로그램 문제 및 우리는 이들을 모니터링하고 모든 것에 응답하고 해결하고 있습니다 우리가 할 수있는 한 많은 것이 있습니다 특정 질문은 여기에있는 대부분의 페이지에서 질문을 보낼 수도 있습니다

당신은 목록 전자 메일 문제에서 이것을 볼 수 있습니다 ok 다시 전자 메일을 보냅니다 알았어 고마워 아즈 하 이거 멋있다

나는 톤이 있다는 것을 안다 이 콘텐츠를 정말 고맙게 여기는 사람들의 이 40 시간에 일주일에 40 시간 정도의 시간은 아마 그보다 몇배 더 걸릴 것입니다 알았어, 고마워 고마워 에피소드 듣기 고마워

오늘 우리는 마이크로 서비스와 건축에 대해 배웠습니다 패턴들

How to Display Error Message to User

안녕하세요, 모두가 매일 수업료를 다시받을 수 있습니다 이 튜토리얼에서는 툴팁을 최대한 활용하는 방법을 보여줍니다

마지막 비디오에서이 툴팁을 디자인합니다 이 비디오에서는 오류에 대해이 툴팁을 사용합니다 따라서 사용자에게 오류 메시지를 표시하려면 툴팁이 도움이됩니다 가능한 방법을 알려 드리겠습니다 따라서이 비디오를 시작하기 전에 우리를 구독하고 벨 아이콘을 눌러 내 모든 새로운 비디오에 대한 알림

그리고이 튜토리얼에서 유용한 것을 발견하면 버튼을 누르십시오 항상 우리가 말하기를, 우리가 let 's을 시작하게하기 전에 먼저 마지막 비디오에서 만든 세 레이블을 제거합니다 그런 다음이 d 플렉스 클래스를 제거하고 여기에 유효성 검사 클래스를 추가합니다 그 후에 우리는이 행에 15 %의 마진을 추가 할 것입니다

그리고 여기에 이메일 텍스트 상자를 추가 할 것입니다 ID 이메일, 자리 표시 자 이메일 및 클래스 폼 컨트롤을 지정합니다 그러면 여기에 새로운 텍스트 상자가 생성됩니다 그런 다음 stylecss 파일에서이 툴팁을 적절히 정렬 할 것입니다

그런 다음 툴팁에서 텍스트를 제거하십시오 jquery 메서드를 사용하여 툴팁에 텍스트를 추가합니다 stylecss 파일에서이 툴팁에 display none 속성을 지정하십시오 페이지로드로 인해 오류 메시지가 표시 될 때이 오류 메시지를 표시하지 않으려 고합니다

none 속성을 표시합니다 그런 다음이 웹 사이트에서 jquery 스크립트 태그를 복사하여 여기에 붙여 넣습니다 그런 다음 스크립트를 만들기위한 mainjs 파일을 만들고이 파일을 indexhtml에 연결합니다

그런 다음이 함수에서 문서 도트 준비 함수를 만듭니다 이메일 텍스트 상자에 초점 이벤트입니다 따라서 이메일 ID를 사용하여 이메일 텍스트 상자를 선택하고 포커스 아웃 이벤트를 만듭니다 이 경우 이메일 텍스트 상자가 비어 있는지 확인합니다 따라서 전자 메일이 비어 있지 않으면 if 문을 실행하고 그렇지 않으면 else를 실행합니다

성명서 따라서 전자 메일이 비어 있으면 텍스트 메서드를 사용하여 레이블 텍스트를 지정합니다 따라서 오류 클래스를 사용하여 레이블을 선택하고 텍스트 방법을 사용하여 에러 메시지 그리고 jquery의 fadeIn 메소드를 호출합니다 이 메서드는이 레이블에 애니메이션 페이드를 만듭니다

이 후 우리는 이메일이 유효한 이메일인지 아닌지 확인합니다 그래서 전자 우편을 확인하기 위해 여기서 유효성 검사 전자 메일과 전달 eval 매개 변수를 작성합니다 이 기능에 그 후 유효한 전자 메일을 확인하기 위해 정규식을 사용하고 있습니다 그래서 변수를 만들고이 변수에 유효한 전자 메일 표현식을 지정합니다

그런 다음 테스트 메소드를 사용하여 이메일을 확인할 if 문을 작성합니다 따라서 if 문에서 테스트 메소드를 삽입하고 여기에 함수 매개 변수를 전달합니다 기능에 대해 알고 싶다면 나에게 의견을 전합니다 기능 이제 이메일이 유효한 이메일이면 true를 반환하고 그렇지 않으면 false를 반환합니다

나는 이것을 한 줄에 맞출 것이다 if 문에서 if 문을 작성하고 validate email 함수를 호출합니다 function 매개 변수에서 email dot val () 함수를 지정합니다 Val 기능은 필요하지 않습니다 그래서 여기에 유효한 전자 메일 if 문을 실행하면 else 문이 실행됩니다

따라서 else 문에서 레이블에 오류 메시지를 지정하고 페이드 인을 추가합니다 그것에 애니메이션 잘못된 이메일을 지정하면이 오류 메시지가 여기에 표시됩니다 따라서 이메일 텍스트 상자에 유효한 이메일을 지정하면이 오류가 제거됩니다 메시지는 fadeout 기능을 사용합니다 Let�s가 어떻게 작동하는지 확인하십시오

따라서이 텍스트 상자를 비워두면이 이메일에 필요한 오류 메시지가 여기에 표시됩니다 그리고 만약 당신이 잘못된 이메일을 지정하면이 잘못된 이메일 메시지가 여기에 표시됩니다 여기에 유효한 메시지를 지정하면 오류 메시지가 사라진 것을 볼 수 있습니다 여기서는 툴팁을 사용하여 필드 검증 및 전자 메일 검증을 수행합니다 범위 확인, 생년월일 확인과 같은 다른 유형의 유효성 검사에이 값을 사용할 수 있습니다

등등 설명에서이 프로젝트를 다운로드하고 다른 유형을 생성하여 연습하십시오 검증 이 비디오처럼 재미 있고 유용한 것을 찾았습니다 질문이나 요청이 있으면 저에게 연락하십시오

이제 그게 전부입니다 다음 동영상에서 그 때까지 행복하게 지켜보고 계속 지켜 볼 것입니다

Slide In Pure CSS Animation – Using Transition Property

우리는 여기에 그라디언트 색상을 사용하고 있습니다 단색도 지정할 수 있습니다

지원되지 않는 브라우저에 배경 그라데이션 지정 버튼의 배경 그라디언트 지정 @keyframe 애니메이션 SlideMe 추가 @keyframe 이름 지정 애니메이션의 지속 시간 질문이 있으면 우리에게 의견을 말하십시오

ASP.NET MVC #7 : Performance Optimization with Bundling and Minification | FoxLearn

foxlearn에 오신 것을 환영합니다 오늘 우리는 Bundling과 Minification을 사용하여 성능을 최적화하는 방법을 배웁니다

Chrome의 네트워크 탭을 사용하여 웹 페이지에서 다운로드 한 파일 수를 확인할 수 있습니다 번들 및 축소는 ASPNET 45에서 요청로드 시간을 향상시키는 데 사용할 수있는 두 가지 기술입니다 번들링 및 축소 기능은 서버에 대한 요청 수를 줄이고 요청 된 자산 (CSS 및 JavaScript 등)의 크기를 줄임으로써로드 시간을 향상시킵니다

클라우드 플레어에서 font-awesome 및 ion-icons 파일을 다운로드 한 다음 파일을 MVC Demo 프로젝트에 복사해야합니다 BundleConfig 클래스에 css 및 javascript 파일을 포함해야합니다 번들링은 ASPNET 45의 새로운 기능으로 여러 파일을 하나의 파일로 결합하거나 번들하는 것이 용이합니다

CSS, JavaScript 및 기타 번들을 만들 수 있습니다 파일 수 감소로 인해 HTTP 요청 수가 줄어들고 첫 페이지로드 성능이 향상 될 수 있습니다 당신은 당신의 페이지에 렌더링 CSS와 자바 스크립트를 추가하고 코멘트를 추가하거나 CSS와 자바 스크립트 레퍼런스를 제거해야합니다 누락 된 글꼴을 Google에서 다운로드 한 다음 MVC 데모 프로젝트의 글꼴 폴더에 파일을 복사 할 수 있습니다 번들 및 축소는 Web

config 파일의 compilation 요소에 디버그 특성 값을 설정하여 설정 또는 해제 할 수 있습니다 다음 XML에서 debug는 true로 설정되어 번들 및 축소가 비활성화됩니다 css 및 javascript 파일이 여러 파일을 결합하거나 하나의 파일로 묶는 것을 볼 수 있습니다 이 비디오를 시청 해 주셔서 감사합니다

Electron Tutorial – Fix jQuery is not defined

Red Stapler에 오신 것을 환영합니다 이전에 튜토리얼 변환 방법을 보여 줬어

전자 응용 프로그램으로 데스크톱 응용 프로그램에 웹 페이지 그러나 만약 당신이 jQuery로 프로젝트 작업하기 jQuery를 올바르게로드하는 방법에 몇 가지 문제점이 있습니다 이 문제를 해결하는 방법을 보여 드리겠습니다 이 비디오의 문제 차가운 페이지의 내 예가 여기 있습니다

jQuery 메뉴와 나는 그것을 포함하고 싶다 내 응용 프로그램이므로 웹 페이지를 복사 해 보겠습니다 그리고 필요한 모든 자바 스크립트 파일을 전자 디렉토리 나는 시작할거야 신청 이제 무언가가 망가 졌음을 알 수 있습니다

나는 그것을 클릭하려고하지만 아무 일도 일어나지 않았다 그래서 내가 너에게가는 ​​다음 일은 보고 싶은 개발자 콘솔을 여는 중입니다 뭐가 문제 야 jQuery가 정의되지 않았 음을 알 수 있습니다 jQuery가 제대로로드되지 않는 이유는 jQuery는 commonJS 환경에서 작동합니다 또는 단순히 jQuery라고 말할 수 있습니다

웹에서 작동하지 않는다는 것을 알고있다 브라우저 – 우리가 있기 때문에 정확합니다 Nodejs 응용 프로그램에서 실행 중입니다 문제는 jQuery 자체가로드 될 때이다

이 모드에서는 자체 모듈을 모듈로로드하므로 사용할 수 없습니다 전 세계적으로 접근하려고 할 때 with 브라우저 윈도우에서는 그렇지 않습니다

유효한 해결 방법은 아주 쉽습니다 jQuery 모듈을 수동으로로드해야한다 그래서 저는 jQuery 스크립트 태그를 대체 할 것입니다 요구 사항으로 바꾸십시오 그게 다야! 이제 앱을 다시 시작해 보겠습니다

글쎄, 언제나처럼보고 주셔서 감사합니다 다른 재미있는 것을 잊지 마라 우리 채널의 비디오 다른하실 말씀 있나요 의견, 저에게 알려주십시오 안녕!

Adding WebDAV Server Implementation to your ASP.NET Web Application

WebDAV Server 구현 마법사를 사용하여 WebDAV 지원을 프로젝트에 추가 할 수 있습니다 기존 프로젝트를 열거 나 Visual Studio에서 새 프로젝트를 만듭니다

프로젝트 컨텍스트 메뉴에서 'Add WebDAV Server Implementation '메뉴를 선택하십시오 마법사는 웹 사이트의 나머지 부분을 그대로 유지하면서 원하는 폴더에서 WebDAV를 활성화합니다

ASPNET 폼 인증은 기본 또는 다이제스트와 함께 사용할 수 있습니다 이제 프로젝트를 실행 해 봅시다 당신은 웹 페이지에서 직접 테스트를 실행할 수 있습니다 요청 및 응답을 검토하십시오 이제 Ajax File Browser를여십시오

드래그 앤 드롭을 사용하여 파일 업로드 보고 주셔서 감사합니다!