Hướng dẫn what are the main disadvantages of using innerhtml in javascript? - nhược điểm chính của việc sử dụng innerhtml trong javascript là gì?

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Cải thiện bài viết

    Lưu bài viết

    ĐọcinnerHTML property is a part of the Document Object Model (DOM) that is used to set or return the HTML content of an element. Where the return value represents the text content of the HTML element. It allows JavaScript code to manipulate a website being displayed. More specifically, it sets or returns the HTML content (the inner HTML) of an element. The innerHTML property is widely used to modify the contents of a webpage as it is the easiest way of modifying DOM. But there are some disadvantages to using innerHTML in JavaScript.

    Bàn luận

    • Thuộc tính bên trong là một phần của mô hình đối tượng tài liệu (DOM) được sử dụng để đặt hoặc trả về nội dung HTML của một phần tử. Trong đó giá trị trả về đại diện cho nội dung văn bản của phần tử HTML. Nó cho phép mã JavaScript thao tác một trang web đang được hiển thị. Cụ thể hơn, nó đặt hoặc trả về nội dung HTML (HTML bên trong) của một phần tử. Thuộc tính bên trong được sử dụng rộng rãi để sửa đổi nội dung của trang web vì đây là cách dễ nhất để sửa đổi DOM. Nhưng có một số nhược điểm đối với việc sử dụng bên trong trong JavaScript. The process of using innerHTML is much slower as its contents as slowly built, also already parsed contents and elements are also re-parsed which takes time.
    • Nhược điểm của việc sử dụng thuộc tính bên trong trong JavaScript: The event handlers do not get attached to the new elements created by setting innerHTML automatically. To do so one has to keep track of the event handlers and attach it to new elements manually. This may cause a memory leak on some browsers.
    • Việc sử dụng bên trong rất chậm: quá trình sử dụng bên trong chậm hơn nhiều vì nội dung của nó như được xây dựng chậm, cũng đã phân tích các nội dung và các phần tử cũng được phân tích lại có thời gian. Either you add, append, delete or modify contents on a webpage using innerHTML, all contents is replaced, also all the DOM nodes inside that element are reparsed and recreated.
    • Bảo tồn các trình xử lý sự kiện được gắn vào bất kỳ phần tử DOM nào: Trình xử lý sự kiện không được gắn vào các phần tử mới được tạo bằng cách tự động cài đặt InNERHTML. Để làm như vậy, người ta phải theo dõi các trình xử lý sự kiện và gắn nó vào các yếu tố mới theo cách thủ công. Điều này có thể gây rò rỉ bộ nhớ trên một số trình duyệt. Usually, += is used for appending in JavaScript. But on appending to an Html tag using innerHTML, the whole tag is re-parsed.

      Example:

      Geeks

      title = document.getElementById('#geek') // The whole "geek" tag is reparsed title.innerHTML += '

      forGeeks

      '
    • Nội dung được thay thế ở mọi nơi: hoặc bạn thêm, nối, xóa hoặc sửa đổi nội dung trên trang web bằng cách sử dụng bên trong, tất cả các nội dung được thay thế, cũng là tất cả các nút DOM bên trong phần tử đó được sửa lại và tái tạo. The old content is replaced even if object.innerHTML = object.innerHTML + ‘html’ is used instead of object.innerHTML += ‘html’. There is no way of appending without reparsing the whole innerHTML. Therefore, working with innerHTML becomes very slow. String concatenation just does not scale when dynamic DOM elements need to be created as the plus’ and quote openings and closings becomes difficult to track.
    • Lắp lại vào bên trong không được hỗ trợ: Thông thường, += được sử dụng để nối thêm trong JavaScript. Nhưng khi nối vào thẻ HTML bằng cách sử dụng bên trong, toàn bộ thẻ được sắp xếp lại. There is no proper validation provided by innerHTML, so any valid HTML code can be used. This may break the document of JavaScript. Even broken HTML can be used, which may lead to unexpected problems.
    • Nội dung cũ đã thay thế vấn đề: Nội dung cũ được thay thế ngay cả khi Object.innerhtml = object.innerhtml + ‘html, được sử dụng thay vì object.innerhtml + =‘ html. Không có cách nào để nối thêm mà không lặp lại toàn bộ nội tâm. Do đó, làm việc với InsideHTML trở nên rất chậm. Sự kết hợp chuỗi chỉ không mở rộng khi các thành phần DOM động cần được tạo ra khi cộng với các lỗ mở và trích dẫn và đóng cửa trở nên khó theo dõi. The fact that innerHTML can add text and elements to the webpage, can easily be used by malicious users to manipulate and display undesirable or harmful elements within other HTML element tags. Cross-site Scripting may also lead to loss, leak and change of sensitive information.

    Example:

     

    <html

    <head

        < 0 1

     2 3

         5 0

     5head

    Có thể phá vỡ tài liệu: Không có xác thực thích hợp được cung cấp bởi InnerHTML, do đó, bất kỳ mã HTML hợp lệ nào cũng có thể được sử dụng. Điều này có thể phá vỡ tài liệu của JavaScript. Ngay cả HTML bị hỏng cũng có thể được sử dụng, điều này có thể dẫn đến các vấn đề bất ngờ.

    Cũng có thể được sử dụng cho kịch bản trang web chéo (XSS): thực tế là InsideHTML có thể thêm văn bản và các phần tử vào trang web, có thể dễ dàng được người dùng độc hại sử dụng để thao tác và hiển thị các yếu tố không mong muốn hoặc có hại trong các thẻ phần tử HTML khác. Kịch bản chéo trang cũng có thể dẫn đến mất mát, rò rỉ và thay đổi thông tin nhạy cảm.

    <<2 <3<4<5

         5<9

        <____29 <3<4html2

     28

     2<0

         52

     2html5

     2head3

         5<7

        <2 3<45 1

        <9

     2    2

        3    4

        <<7 <8<4head0____11

        3    8

        5<0

        3    8

        5<4

     2<6

         59

     5<2

     5html 1

    Output:

    Hướng dẫn what are the main disadvantages of using innerhtml in javascript? - nhược điểm chính của việc sử dụng innerhtml trong javascript là gì?


    Tại sao bạn không nên sử dụng InnerHTML trong JavaScript?

    Có thể phá vỡ tài liệu: Không có xác thực thích hợp được cung cấp bởi InnerHTML, do đó, bất kỳ mã HTML hợp lệ nào cũng có thể được sử dụng. Điều này có thể phá vỡ tài liệu của JavaScript. Ngay cả HTML bị hỏng cũng có thể được sử dụng, điều này có thể dẫn đến các vấn đề bất ngờ.: There is no proper validation provided by innerHTML, so any valid HTML code can be used. This may break the document of JavaScript. Even broken HTML can be used, which may lead to unexpected problems.

    Tác dụng của việc sử dụng InternalHTML là gì?

    Đọc bên trong khiến tác nhân người dùng tuần tự hóa đoạn HTML hoặc XML bao gồm hậu duệ của phần tử.Chuỗi kết quả được trả về.Điều này cho phép bạn nhìn vào đánh dấu HTML của các nút nội dung của phần tử.causes the user agent to serialize the HTML or XML fragment comprised of the element's descendants. The resulting string is returned. This lets you look at the HTML markup of the element's content nodes.

    Tại sao InnnerHTML không an toàn?

    InsideHTML Today là tập lệnh chéo trang (XSS), cho phép người dùng bên ngoài thêm các tập lệnh phía máy khách độc hại vào các trang web sẽ được xem bởi nhiều người dùng.Tin rằng các tập lệnh này là an toàn, trình duyệt của họ sẽ thực hiện chúng, khiến người dùng dễ bị đánh cắp cookie và thông tin cá nhân khác.cross-site scripting (XSS), which allows outside users to add malicious client-side scripts to websites that will be viewed by many users. Believing these scripts to be safe, their browsers will execute them, leaving the user vulnerable to theft of cookies and other personal information.

    Tại sao InnerHtml chậm?

    InsideHTML chậm vì nó phải tìm các thẻ HTML trong giá trị và phân tích nó vào các nút dom.Nếu bạn chỉ chèn văn bản thuần túy không chứa bất kỳ thẻ HTML nào, hãy sử dụng TextContent.it has to look for HTML tags in the value, and parse it into DOM nodes. If you're just inserting plain text that doesn't contain any HTML tags, use textContent instead.