Truyền biến php vào javascript
Tôi sẽ thử một câu trả lời đơn giản hơn: Giải thích vấn đềTrước tiên, hãy hiểu luồng sự kiện khi một trang được phục vụ từ máy chủ của chúng tôi:
Vì vậy, thực sự, điều cốt lõi cần nhớ ở đây là HTTP là không trạng thái . Khi một yêu cầu rời khỏi máy chủ, máy chủ không thể chạm vào nó. Vì vậy, đó là lựa chọn của chúng tôi để:
Các giải phápĐó là câu hỏi cốt lõi bạn nên tự hỏi mình là: Tôi đang viết một trang web hoặc một ứng dụng?Trang web chủ yếu dựa trên trang và thời gian tải trang cần phải nhanh nhất có thể (ví dụ: Wikipedia). Các ứng dụng web nặng hơn AJAX và thực hiện nhiều chuyến đi khứ hồi để có được thông tin nhanh của khách hàng (ví dụ: bảng điều khiển chứng khoán). Trang mạngGửi thêm yêu cầu từ khách hàng sau khi yêu cầu ban đầu được thực hiện là chậm vì nó yêu cầu nhiều yêu cầu HTTP hơn có chi phí đáng kể. Hơn nữa, nó đòi hỏi sự không đồng bộ khi thực hiện một yêu cầu AJAX yêu cầu xử lý khi hoàn thành. Tôi không khuyên bạn nên thực hiện một yêu cầu khác trừ khi trang web của bạn là một ứng dụng để nhận thông tin đó từ máy chủ. Bạn muốn thời gian phản hồi nhanh có ảnh hưởng lớn đến thời gian chuyển đổi và tải. Thực hiện các yêu cầu ajax là chậm cho thời gian hoạt động ban đầu trong trường hợp này và không cần thiết. Bạn có hai cách để giải quyết vấn đề
Đặt cookie thực sự không khó lắm, bạn chỉ cần gán cho nó một giá trị:
Sau đó, bạn có thể đọc nó bằng JavaScript bằng cách sử dụng Đây là một trình phân tích cú pháp cuộn tay ngắn, nhưng câu trả lời tôi liên kết ở bên trên này đã được thử nghiệm tốt hơn:
Cookies là tốt cho một ít dữ liệu. Đây là những gì dịch vụ theo dõi thường làm. Khi chúng ta có nhiều dữ liệu hơn, chúng ta có thể mã hóa nó bằng JSON bên trong một biến JS:
Giả sử Ứng dụngNếu bạn đang viết một ứng dụng - đột nhiên thời gian tải ban đầu không phải lúc nào cũng quan trọng như hiệu suất liên tục của ứng dụng và nó bắt đầu trả hết để tải dữ liệu và mã riêng biệt. Câu trả lời của tôi ở đây giải thích cách tải dữ liệu bằng AJAX trong JavaScript:
Hoặc với jQuery:
Bây giờ, máy chủ chỉ cần chứa một
Theo cách này, tệp JS của chúng tôi yêu cầu dữ liệu và hiển thị nó thay vì yêu cầu mã hoặc bố cục. Điều này là sạch hơn và bắt đầu trả hết khi ứng dụng cao hơn. Nó cũng phân tách mối quan tâm tốt hơn và nó cho phép kiểm tra mã phía máy khách mà không có bất kỳ công nghệ phía máy chủ nào liên quan, đó là một điểm cộng khác. Postcript: Bạn phải rất chú ý đến các vectơ tấn công XSS khi bạn tiêm bất cứ thứ gì từ PHP sang JavaScript. Đó là rất khó khăn để thoát khỏi các giá trị đúng và đó là bối cảnh nhạy cảm. Nếu bạn không chắc chắn làm thế nào để đối phó với XSS, hoặc không biết về nó - vui lòng đọc bài viết OWASP này , bài viết này và câu hỏi này . 83 hữu ích 5 bình luận chia sẻ |