2012-04-23 45 views
5

Tôi chạy trang web this cho bố tôi, kéo tweets từ nguồn cấp dữ liệu twitter của mình và hiển thị chúng ở định dạng thay thế. Hiện tại, các tweets được kéo bằng javascript nên hoàn toàn phía máy khách. Cách hiệu quả nhất để làm việc là gì? Trang web không có tỷ lệ truy cập nhưng tôi chỉ quan tâm đến những gì sẽ là cách tốt nhất để mở rộng quy mô. Bất cứ lời khuyên nào cũng tuyệt vời cả. Tôi cũng đang nghĩ đến việc đưa các bài viết vào luồng tại một thời điểm nào đó. Điều gì sẽ là cách tốt nhất để thực hiện điều đó?Phía máy chủ hoặc phía máy khách để tìm nạp tweet?

Trả lời

7

Yêu cầu API Twitter là rate limited to 150 an hour. Nếu trang của bạn được yêu cầu nhiều hơn thế, bạn sẽ gặp lỗi từ API Twitter (lỗi HTTP 400). Do đó, có thể là một ý tưởng tốt hơn để yêu cầu các tweet trên máy chủ và lưu trữ phản hồi trong một khoảng thời gian nhất định. Bạn có thể yêu cầu các tweet mới nhất lên đến 150 lần một giờ, và bất cứ khi nào trang của bạn được yêu cầu, nó sẽ nhận được các mẩu tin lưu trữ được lưu trong bộ nhớ cache từ kịch bản phía máy chủ của bạn, thay vì gọi trực tiếp API.

Từ các tài liệu Twitter:

cuộc gọi Unauthenticated được phép 150 yêu cầu mỗi giờ. Các cuộc gọi không được xác thực được đo so với IP công khai của máy chủ hoặc thiết bị hoặc yêu cầu.

Gần đây, tôi đã thực hiện một số công việc tích hợp với API Twitter theo đúng cách bạn có. Chúng tôi đã đạt đến giới hạn tốc độ rất nhanh, thậm chí chỉ trong khi thử nghiệm ứng dụng. Ứng dụng đó hiện lưu trữ các tweet ở máy chủ và cập nhật bộ nhớ cache vài lần mỗi giờ.

+0

Cảm ơn - Tôi sẽ làm điều đó, lời khuyên tuyệt vời. Chỉ cần để thưởng thức OCD của tôi cho hiệu suất, nếu tốt hơn để cache nó (ví dụ: một lần mỗi giờ) như một json và sau đó làm cho khách hàng tải xuống và điền vào trang bằng cách sử dụng json (để phía khách hàng) hoặc cache nó như ví dụ sql , sau đó xử lý trước trang bằng cách sử dụng ví dụ php (phía máy chủ)? Tôi hy vọng điều đó đúng. – neutrino

+1

Cách tôi đã thực hiện nó chỉ đơn giản là để có kịch bản phía máy chủ trả về chuỗi JSON được lưu trữ. Dù bằng cách nào cũng có tác dụng, vì vậy điều đó tùy thuộc vào bạn. Trong trường hợp của tôi, việc giữ lại JS hiện có nhanh hơn và dễ dàng hơn, điều này sẽ chỉ hoạt động nếu phản hồi từ máy chủ có cùng định dạng. –

+0

Vâng, tôi hiểu, cảm ơn rất nhiều. – neutrino

0

Bằng cách kéo phía máy chủ tweet, bạn định tuyến tất cả lưu lượng truy cập tweet qua máy chủ của mình. Vì vậy, tất cả lưu lượng truy cập của bạn sau đó đến từ máy chủ của bạn, có khả năng làm giảm hiệu suất của trang web của bạn.

Nếu bạn không thực hiện bất kỳ công cụ kỳ diệu nào với những mẩu tin không phải là khách hàng tiềm năng, tôi nên gắn bó với giải pháp hiện tại của bạn. Không có gì sai với nó và nó quy mô rất nhiều (giả sử rằng bạn không làm tốt hơn các máy chủ của Twitter tất nhiên;))

0

Kéo tweets của bạn từ phía khách hàng chắc chắn là tốt hơn về khả năng mở rộng. Tôi không hiểu những gì bạn đang tìm kiếm trong câu hỏi thứ hai của bạn về việc thêm các bài viết

0

Tôi nghĩ rằng nếu bạn có thể làm cho họ phía khách hàng đi cho nó! Nó đẩy việc sử dụng băng thông vào trình duyệt. Ít tải trên máy chủ của bạn. Tôi nghĩ nó cũng có thể mở rộng được. Miễn là khách hàng của bạn có thể thực hiện một yêu cầu web, họ có thể hiển thị trang web của bạn! không nhận được bất kỳ dễ dàng hơn thế! Máy chủ của bạn sẽ không bao giờ là cổ chai cho họ!

Nếu bạn có thể nhận được các bài viết thông qua api, tôi sẽ tuân theo thiết lập hiện tại sẽ giữ cho mọi phía khách hàng thân thiết.

0

Đối với các công cụ có nhu cầu thực sự thấp như vậy, nó thực sự không quan trọng lắm. Nếu bạn có một số lượng lớn nhiệm vụ cho mỗi người dùng thì bạn có thể muốn xem xét phía máy chủ. Nếu bạn có một số lượng lớn người dùng và chỉ có một vài tác vụ (các tweets được kéo vào hoặc bất kỳ thứ gì) cho mỗi người dùng, thì AJAX của phía máy khách có lẽ là cách để đi. Theo như bao gồm các bài viết của bạn, tôi có thể chuyển sang phía máy chủ ở đó vì kích thước dữ liệu bạn sẽ làm việc với ..

1

Tôi khuyên bạn nên sử dụng phía máy khách để gọi API Twitter. Tránh gọi máy chủ của bạn. Sự sụp đổ duy nhất để sử dụng js phía máy khách là bạn không thể kiểm soát xem người xem có bị tắt js hay không.

Bạn muốn đưa loại bài viết nào vào luồng?Giống như các bài đăng trên blog trực tiếp trên trang web của bạn hoặc các bài viết bên ngoài?

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