2010-07-13 35 views
14

Tôi đã kiểm tra ra nguồn gốc trên một trang html và đi qua nàyThẻ tập lệnh html không sử dụng loại javascript <script type = "text/html">?

<script id="searchItemTemplate" type="text/html"> 
    <# var rows = Math.floor((Model.RecordsPerPage - 1)/3 + 1); 
     for (var i = 0; i < rows; ++i){ 
     var startIdx = i * 3; 
     var endIdx = startIdx + 3; 
    #> 
//etc .... 
</script> 

Tôi chưa bao giờ thấy điều này trước đây. Kịch bản là gì type="text/html". Tôi không biết nếu nó làm cho một sự khác biệt nhưng điều này đã được trên một trang .aspx.

Đây có phải là một loại trình giữ chỗ nào đó được phân tích cú pháp và eval() sau này không?
Có ai biết đây là gì không?
Ai đó đã sử dụng phương pháp này có giải thích được lợi ích không?

Trả lời

17

Yếu tố tập lệnh có loại nội dung không xác định chỉ đơn giản bị bỏ qua, trong trường hợp này, trình duyệt không biết cách thực hiện tập lệnh text/html.

Đó là một kỹ thuật phổ biến được sử dụng bởi một số công cụ tạo khuôn mẫu JavaScript.

Xem thêm:

+0

BTW, [Processing.js] (http://processingjs.org/) cũng sử dụng kỹ thuật này. – CMS

4

Đó là một thủ thuật mà tôi lần đầu tiên nhìn thấy trong một bài đăng blog John Resig. Nó được sử dụng cho các công cụ như giữ một mẫu để được mở rộng sau này. Trình duyệt sẽ không thực hiện bất kỳ nỗ lực nào để thực thi nó.

"Lợi ích"? Vâng, đó là rất nhiều neater hơn giữ một chuỗi trong mã Javascript của bạn trực tiếp. Bởi vì bạn không có chuỗi nhiều dòng trong Javascript, thật lộn xộn khi xác định một mẫu như thế.

chỉnh sửa — ha ha có, CMS đã liên kết bài đăng trên blog này trong câu trả lời của anh ấy!

Các vấn đề liên quan