2011-01-24 43 views
5

Tôi đang lập kế hoạch bao gồm Markdown trong một dự án sắp tới. Trong quá khứ, tôi vừa mới sử dụng trình phân tích cú pháp Markdown phía máy chủ được đóng gói sẵn, đã khử trùng lại đầu ra HTML (một bước không cần thiết?) Và gửi nó cho khách hàng.Những nhược điểm của phân tích Markdown ủy nhiệm cho phía khách hàng là gì?

Tôi quan tâm đến việc giảm tải ít nhất phần này của chế độ xem hiển thị cho khách hàng. Tôi đã sử dụng các trình phân tích cú pháp Javascript Markdown phía máy khách với thành công lớn trong các ứng dụng Rails trước đây. Tôi sẽ ủy quyền đối tượng cơ thể để xem DOM chèn lớp markdown-parseme hoặc tương tự và sau đó phân tích cú pháp và thay thế văn bản gốc bằng kết quả.

Nhưng đây là lần đầu tiên tôi xem xét nó cho một trang web sản xuất trong tự nhiên. Mối quan tâm về an ninh và bảo mật là gì khi cho phép khách hàng xử lý hiển thị Markdown? Có bất kỳ thư viện cụ thể nào đưa các vấn đề này vào tài khoản không?

CHỈNH SỬA: mối quan tâm rõ ràng mà lưu ý đến là "điều gì về những người không có Javascript". Nó hoàn toàn nằm trong khả năng của chúng tôi để phát hiện các trình duyệt không bật Javascript và triển khai một cơ chế cho phép khách hàng (có thể là thủ công) gắn cờ rằng họ không có JS và di chuyển phân tích đến phía máy chủ. Tôi rất muốn điều tra nếu có vấn đề nghiêm trọng với việc giảm phân tích cú pháp Markdown cho khách hàng ngoài câu hỏi tương thích thông thường này. Hiển thị một trang có kích thước không có bộ nhớ đệm đầu ra là thêm một số lượng không đáng kể vào thời gian phản hồi và thông qua đó, tải máy chủ và sẽ rất tuyệt nếu chúng tôi có thể tự tin chuyển nhiệm vụ đó ra khỏi máy chủ cho 95% người dùng .

+0

Tại sao di chuyển cho khách hàng? Chỉ để tiết kiệm cho mình cuộc gọi AJAX? – sdleihssirhc

+0

Một vấn đề hiển nhiên là bắt buộc phải bật JavaScript. –

+1

Đối với rất nhiều ứng dụng web, thiếu JavaScript có nghĩa là bạn không sử dụng ứng dụng ngay từ đầu, nếu không bạn đang sử dụng số tiền đó cho một ứng dụng hoàn toàn khác. – Pointy

Trả lời

1

Giả định rằng máy khách có khả năng phân tích Cú pháp Markdown có thể không đúng (ít nhất là đối với một số người và cho các công cụ tìm kiếm). Nếu bạn cung cấp các nhóm này với phiên bản được phân tích cú pháp máy chủ, bạn trùng lặp mã. Máy chủ thường có nhiều công cụ mạnh hơn để ngăn chặn XSS và tương tự (vì đó là những gì máy chủ làm: tạo HTML từ nội dung người dùng một cách an toàn).

0

markdown-js chưa hoàn thành nhưng đây là thư viện JavaScript cho tập hợp con đánh dấu sử dụng AST thay vì các giai đoạn chuyển đổi HTML khác. Nó sẽ tạo ra HTML sane ngay từ đầu. Tôi nghĩ rằng cách tiếp cận này, nếu được thực hiện đúng cách, sẽ làm cho việc đánh dấu hiển thị ở phía khách hàng thực tế.

Nó cố ý không hỗ trợ HTML được nhúng.

3

Ngày nay, hầu hết mọi người đều sử dụng javascript, vì vậy đây không phải là vấn đề. Thư viện showdown rất tuyệt vời để hiển thị bên phía khách hàng.

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