Automate multi-pass rendering
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 30/100
Hướng nghiên cứu
Bắt đầu bằng cách lần theo vòng đời yêu cầu-phản hồi xung quanh các hàm go() và go_*(), sau đó xem xét cách thuộc tính MultiPass, bộ chọn CSS và header yêu cầu x-go sẽ phù hợp với luồng đó. Xác định hành vi thực thi, cập nhật phần tử và refresh được mô tả trong issue; công việc được xem là hoàn tất khi các kịch bản kết xuất multi-pass được ghi lại hoạt động mà không làm hỏng việc xử lý yêu cầu của trình duyệt terminal.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
By default, all page functionality should be put into go()
However, make it so any go_*() function will be called, allowing for functionality to be split into separate functions.
For example, on a page where there's basic functionality, and then a chart is rendered, put all the required functionality in go() as usual, but move the chart rendering into go_chart().
On a normal page request, all go() and go_*() functions are executed (in any order, technically allowing for concurrent execution).
The fancy functionality comes from tagging a go function with a #[MultiPass()] attribute.
The go_chart() function can be tagged with a CSS selector to the element it is isolated to:
#[MultiPass("main .data>.chart")]
function go_chart(Element $element):void {
// Now $element is already selected from the document.
}
The fancy stuff can be done by now only executing the main go() function on the first render, and each individual Multi-Pass element being updated with an automated fetch() request from the client side.
Fetch request with "x-go: chart" header to only render that one function (to do multi pass rendering)
There can be more fancy stuff automated by specifying update regularity, so a page can be kept up to date, like #[MultiPass("main .data>.chart", 3)] // update every 3 seconds.
Maybe web services can be added for #450 , but the main priority is to respect the request-response lifecycle, so WebEngine apps can still be completely used within a terminal browser.
- Ngôn ngữ chính
- PHP
- Star
- 26
- Fork
- 6
- Merge trung bình
- 21 ngày 17 giờ
- Pull request đã merge (30 ngày)
- 1
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của phpgt/WebEngine
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
-
Docs: missing piecesĐang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
-
Errors: If page logic errors, components should continue to executeCó thể làm lại được @g105b đã nhận 341 ngày trước và không có pull request nào đang mở. Đang mởquestion
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
-
enhancement
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 35/100
Tất cả issue của phpgt/WebEngine
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 60/100
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
scanaislop/aislop#476 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
components-web-app/api-components-bundle#403 ·
Maintainer thường phản hồi trong vòng 1 ngày